Solidity 小白教程:19. 接收 ETH receive 和 fallback

本文详细讲解了Solidity中用于接收ETH的receive()和fallback()函数,包括它们的区别、使用场景及注意事项。在0.6.x版本后,receive()专门用于接收ETH,而fallback()则在函数调用未匹配时触发,可以用于接收ETH或作为代理合约。同时提醒开发者注意潜在的安全问题,如恶意合约利用fallback()消耗gas。
摘要由CSDN通过智能技术生成

Solidity 小白教程:19. 接收 ETH receive 和 fallback

Solidity支持两种特殊的回调函数,receive()fallback(),他们主要在两种情况下被使用:

  1. 接收 ETH
  2. 处理合约中不存在的函数调用(代理合约 proxy contract)

注意 ⚠️:在 solidity 0.6.x 版本之前,语法上只有 fallback() 函数,用来接收用户发送的 ETH 时调用以及在被调用函数签名没有匹配到时,来调用。 0.6 版本之后,solidity 才将 fallback() 函数拆分成 receive()fallback() 两个函数。
我们这一讲主要讲接收 ETH 的情况。

接收 ETH 函数 receive

receive()只用于处理接收ETH。一个合约最多有一个receive()函数,声明方式与一般函数不一样,不需要function关键字:receive() external payable { … }receive()函数不能有任何的参数,不能返回任何值,必须包含externalpayable

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

区块链、智能合约工具箱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值