区块见闻 区块见闻
Ctrl+D收藏区块见闻

CHA:Solidity中的事件和日志-ODAILY_chainlink币潜力2021

作者:

时间:

Solidity事件对于智能合约开发者来说是不可或缺的,它允许我们对智能合约中特定变量进行测试,以自动化的方式改变前端等。总的来说,知道如何在Solidity中使用事件可以使智能合约的开发变得更加容易。

在本文,我们将从智能合约开发者的角度来研究以太坊虚拟机的日志和事件功能,包括日志和事件的用途,索引事件,以及如何在Hardhat和Brownie中使用日志和事件。

EVM是以太坊和许多其他区块链的核心。EVM有一个日志功能,用于将数据“写”到智能合约之外的数据结构中。其中一个重要的数据是Solidity事件。事件允许我们“打印”在区块链上的信息,这种方式比在智能合约中保存到公共存储变量更容易搜索,且更省gas费。

日志是区块链上的一种特殊数据结构。它们不能被智能合约访问,但能提供关于交易和区块中发生的信息。正是因为它们不能被智能合约访问,才使得它们的使用成本更低。

PeckShield:Nirvana攻击者将3.3枚WBTC兑换为48枚ETH:金色财经报道,派盾(PeckShield)监测显示,Nirvana攻击者将3.3枚WBTC兑换为48枚ETH(约7.6万美元),准备通过Thorchain跨链转移。[2023/2/1 11:40:05]

你也可以观看下面的关于Solidity中的事件和日志的视频:

https://www.bilibili.com/video/BV1iL4y1s7ro?spm_id_from=333.999.0.0

那么,什么是事件呢?

事件允许我们轻松查询在区块和交易中发生的“东西”。如果你运行一个区块链节点,你可以通过订阅它们来“监听”到某些事件。事实上,这就是Chainlink网络的工作方式。Chainlink网络在某些地址订阅某些事件,并根据发出的事件内容,从现实世界返回数据。

事件能用来做什么?

安全团队:Nirvana遭闪电贷攻击,请相关用户注意资产安全:7月28日消息,据慢雾区情报,Solana 链上稳定币项目 Nirvana 遭遇闪电贷攻击,攻击者通过部署恶意合约,使用闪电贷从 Solend 借出 10,250,000 USDC,随后调用 Nirvana 合约 buy3 方法购买了大量 ANA 代币,随后调用 Nirvana 合约 swap 方法卖出部分 ANA,得到USDT 和 USDC ,在归还完闪电贷后共获利3,490,563.69 USDT,21,902.48 USDC 及 393,230.32 ANA代币,随后黑客出售 ANA 代币,并将所有脏款通过跨链桥转移。Nirvana 源代码未完全开源,据链上调用日志分析,攻击者可能利用了 ANA 价格计算漏洞进行套利,请相关用户注意资产安全。[2022/7/28 2:43:46]

现在,如果你不是Chainlink或Ethereum节点运营商,你可能会问事件对你有什么影响呢。通过Solidity事件,你可以做:

NirvanaMeta和NGGDAO公会签署合作协议共同打造链游公会:据官方消息,NirvanaMeta和NGGDAO公会签署合作协议共同打造链游公会。

NGG公会建于2021年在mir4中成立,目前NGG公会会员在Mir4中NFT投资超过500万美金。[2022/3/9 13:46:44]

测试你的智能合约中的特定变量;

索引变量以重建存储状态;

监听事件用于改变前端状态;

创建子图以更快地读取数据;

还可以完成其他许多事情。对工程师来说,事件有各种各样的用例。事实上,事件是Chainlink节点运作的核心组成部分。Chainlink节点会监听数据请求和外部计算事件,这正是是他们知道如何响应的根源。

事件是什么样子的?

下面的数据结构就是在Solidity中定义一个事件的方式:

NirvanaMeta(宇宙重生)推出DRAGON-NFT(飞龙):据官方消息,NirvanaMeta(宇宙重生)推出DRAGON-NFT(飞龙)每个区总量仅50只飞龙,2022年1月6日21:00开始认购。一个DRAGON-NFT(飞龙)官方价值150000 MNU,DRAGON-NFT(飞龙)在线每分钟收益 2 MNU,不在线每分钟收益1.3 MNU。认购人钱包地址必须持有MNU-NFT,创建飞龙NFT后开始即可开始收益到账,90天后开始衰减,每天衰减前一天产量的1%。[2022/1/5 8:27:38]

你可以把事件看作是一个新的特殊类型。我们已经创建了一个名为storedNumber的事件“类型”。事件的名字叫storedNumber,可以容纳一些变量。在这个事件中,有两种参数:有索引的和无索引的。索引参数也被称为“主题”,是事件中的可搜索参数。我们会在后文更多地谈及这些内容。

然后我们可以像下面这样发出一个事件:

新型公链NA(Nirvana)Chain内核开发完成,即将发布测试网络:NA(Nirvana)Chain目前已完成虚拟机、N++语言、共识框架、actor并发模型等开发工作,下一阶段将继续完善应用层的开发及测试。预计6-7月会将代码交付给首批矿机技术孵化公司进行技术测试,以确保带给用户最好的使用体验。

NA(Nirvana)Chain首创了异构复合链架构实现数据分而治之,达到海量并发效果。其nvm虚拟机研发了定时任务、并行计算,微服务等创新技术。独有的N++编程语言可以实现5分钟内极速掌握,大大降低开发者的学习门槛。打造了去中心化域名租赁平台,将实现匿名去中心化网页的建设。网页域名、UI、逻辑程序、数据全上链,实现100%真正去中心化Dapp和Dweb。[2021/4/2 19:40:08]

下面是一个完整的合约实例:

现在,只要我们调用这个例子中的store函数,它就会发出一个storedNumber类型的事件。让我们看看一个调用store函数、输入为1的示例交易。我们可以在KovanEtherscan上看到这个事务。

滚动到交易的“日志”部分,我们可以看到以下内容:

一个事件可以分解为:

Address:地址,发出事件的合约或账户的地址。

Topics:主题,事件的索引参数。

Data:数据,事件的非索引参数的ABI编码或“哈希”。由于我们知道合约的ABI,我们可以在“Dec”或“Decoded”模式下查看它,或者在其原始的“hex”、“Hexidecimal”或“Encoded”模式下查看。如果我们没有验证过合约,我们就无法看到解码的版本。

你可以在Solidity文档中阅读更多关于事件的内容。“日志”和“事件”经常被互换使用,因为作为智能合约的开发者,我们通常只关心日志中的“事件”。然而,从技术上讲,日志也包括blockhash、address,以及通过调用eth_getLogs返回给你的区块链节点的其他数据。你也可以阅读更多有关布隆过滤器的内容,这是这些事件能被简单查询到的原因。

Hardhat中的事件

现在我们已经了解了什么是事件,让我们学习如何在Hardhat中访问并使用它们。你可以克隆下面的repo,然后跟着操作:

gitclonehttps://github.com/PatrickAlphaC/hardhat-events-logs

cdhardhat-events-logs

你需要跟着README.md中的说明完成依赖工具的安装,其中包括Node、Yarn和Git。

如果你跟着README.md操作,你将能够:

部署一个智能合约;

创建一个发出事件的交易;

查看这些事件的上下文。

如果你在这一过程中遇到问题,请在Githubrepo上新建一个Issue!我们可以通过检查transactionReceipt对象的logs属性来查看日志。

Brownie中的事件

Brownie中的事件几乎是相同的,因为合约是完全相同的。

你可以克隆下面的repo,然后跟着操作:

你需要跟着README.md中的说明完成依赖工具的安装,其中包括Node、Python、eth-brownie和Git。

如果你跟着README.md操作,你将能够:

部署一个智能合约;

创建一个发出事件的交易;

查看这些事件的上下文。

如果你在这一过程中遇到问题,请在Githubrepo上新建一个Issue!你会发现这里的主要区别是,我们使用打印语句来打印出事务的日志:

总结

日志和事件是智能合约开发的重要组成部分,也是Chainlink和TheGraph等项目的关键基础设施。要想了解更多关于开发强大的智能合约的信息,请务必前往查看Chainlink文档,从现在开始创作吧!。

标签:CHADITSOLIDNLINKchainlink币潜力2021JustLiquidityMOSOLIDchainlink币能涨到多少

Gate交易所热门资讯
THE:Wanxiang Blockchain Labs, New Chainbase, and DFINITY Foundation Announce the Launch of 2022 IC Bootcamp-ODAILY_AIN

WanxiangBlockchainLabs,NewChainbase,andDFINITYFoundationAnnouncetheLaunchof2022ICBootcampOnMarch1.

CHA:波卡生态周报:XCM启动,生态项目为DOT提供新的价值捕获 -ODAILY_2gether

Polkadot生态研究院出品,必属精品波卡一周观察,是我们针对波卡整个生态在上一周所发生的事情的一个梳理,同时也会以白话的形式分享一些我们对这些事件的观察.

CEL:Nirvana,是庞氏还是算法稳定币的创新?-ODAILY_tranchess币

“近日圈内FOMO情绪高涨的新算法稳定币项目Nirvana创建了一种新型的AMM机制,解决了算法稳定币在流动性上的问题,同时被其反复套娃机制,有庞氏的影子.

USD:波场去中心化算法稳定币USDD挖矿指南-ODAILY_TRO

波场去中心化算法稳定币USDD于今日正式上线,波场TRON正式开启稳定币3.0时代。 USDD是波场DAO联合区块链行业的主流机构推出的去中心化算法稳定币,以数学与算法实现人类的金融自由,不依赖.

RAO:SupraOracles宣布与Web 3.0投资平台TG DAO建立合作-ODAILY_gdao币前景

SupraOracles很高兴地宣布与TGDAO3.0建立合作伙伴关系,TGDAO3.0是投资传统和加密初创公司的发布平台.

GDAO:这五大改进重点可能将重塑未来的链游经济系统-ODAILY_UDAO币

章鱼网络创始人Louis,分享了他对链游经济系统的思考:重点1:链游的游戏经济范式发生了转变,从封闭的专卖式的经济变成真正的开放市场.