EFI:跟我学 Solidity:事件

原文作者:wissalhaji

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

欢迎订阅《Solidity智能合约专栏》系列文章。

在上一篇中,我们已经看到了如何使用web3

}

创建相应的迁移文件2_deploy_eventExample

}

你需要使用migrate--reset重新部署合约。

重复前面相同的步骤,获取已部署合约的实例,并调用storeData函数。

>eventExample=awaitEventExample.deployment()>tx=awaiteventExample.storeData(10,15)

然后检查tx.receive.rawLogs,你会看到以下结果。

收据交易记录的内容交易日志

data1字段显示在data下,而索引字段data2显示在topics字段下。一般来说,有索引的参数放在topics下,没有索引的参数放在data下。

第一个话题是事件签名的哈希值,在Solidity文档中有如下描述:

topics:keccak(EVENT_NAME"("EVENT_ARGS.map(canonical_type_of).join(",")")"。(canonical_type_of是一个简单地返回给定参数的规范类型的函数,例如,对于uintindexedfoo,它将返回uint256)。如果事件被声明为"匿名",则不会生成"topics"。

注:一个事件中可索引的参数数量最多为三个。

每个区块头都包含一个名为"logsBloom"的字段,这是Bloom过滤器,由区块交易列表部分的每笔交易的收据中包含的可索引信息(日志地址和日志主题)组成。

当在整个区块链或部分区块链数据中寻找属于某个地址或包含某些数据的特定事件时,节点会通过区块头并检查每个区块的Bloom过滤器,以决定该区块是否包含所需的日志。

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/9615158.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

深入解析MakeDao在新周期里的机遇和风险

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-3:580ms