solidity-19-fallback

接收ETH receive和fallback

receive和callback是solidity中两个特殊的回调函数,一个处理接收ETH,一个处理不存在的函数调用。本质上就是吧fallback拆成了两个回调函数。我暂时不知道什么是fallback

fallback调用不存在的函数时会被调用也就是这个函数是不是等价于callback?

简单的部署一个合约

javascript 复制代码
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

contract Fallback{
    event receivedcalled(address Sender,uint Value);
    event fallbackcalled(address Sender,uint value,bytes Data);

    receive() external payable {
        emit receivedcalled(msg.sender,msg.value);
     }

     fallback() external payable{
        // 传入了消息的来源 消息的value 消息的数据?
        emit fallbackcalled(msg.sender, msg.value, msg.data);
     }
}

向合约内进行转账

交易成功并成功触发了事件。

如果在交易的时候calldata中添加了数据就触发了fallback而不是receive

总结下来就是一句话:

简单来说,合约接收ETH时,msg.data为空且存在receive()时,会触发receive();msg.data不为空或不存在receive()时,会触发fallback(),此时fallback()必须为payable。

相关推荐
Amore05253 小时前
Web3合约ABI,合约地址生成部署调用及创建,连接钱包,基础交易流程
web3·区块链·ethers
caijingshiye17 小时前
BitMart 启动中文品牌“币市”:引领加密资产本地化发展新篇章
人工智能·区块链
Dream Algorithm21 小时前
保证金率(Margin Ratio)
区块链
Ashlee_code1 天前
北极圈金融科技革命:奥斯陆证券交易所的绿色跃迁之路 ——从Visma千倍增长到碳信用衍生品,解码挪威资本市场的技术重构
科技·算法·金融·重构·架构·系统架构·区块链
软件工程小施同学1 天前
【最新区块链论文录用资讯】CCF A--WWW 2025 23篇
区块链
Ashlee_code1 天前
关税战火中的技术方舟:新西兰证券交易所的破局之道 ——从15%关税冲击到跨塔斯曼结算联盟,解码下一代交易基础设施
java·python·算法·金融·架构·系统架构·区块链
懒猫gg2 天前
区块链概述
区块链
小七mod2 天前
【BTC】挖矿
区块链·比特币·btc·挖矿·pow·矿池·轻节点
Dream Algorithm2 天前
区块链笔记
区块链
YSGZJJ2 天前
什么是股指期货的不对冲策略?
区块链