木星链 木星链
Ctrl+D收藏木星链
首页 > Luna > 正文

SOL:Solidity中的事件和日志-ODAILY

作者:

时间:1900/1/1 0:00:00

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

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

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

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

Solana推出ChatGPT插件,并将AI赠款基金从100万美元扩大至1000万美元:5月23日消息,Solana基金会已通过Solana Labs开发的ChatGPT插件正式将AI集成到其网络中,ChatGPT插件最初将专注于NFT,可用于购买和上架NFT、转移代币、结账交易、解释数据以及按地板价查找NFT收藏品。此外,Solana基金会还将其针对基于Solana的以人工智能为重点的项目的赠款计划从4月下旬的100万美元扩大到1000万美元。[2023/5/23 15:21:23]

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

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

那么,什么是事件呢?

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

Solana联创:最新中断系错误配置的验证器混淆网络无法判断正确分叉导致:金色财经报道,Solana 联合创始人Anatoly Yakovenko在最新采访中解释了最近爆发的网络中断问题,他透露本次中断的一个原因是一个错误配置的验证器混淆了 Solana 网络,无法确定哪个分叉是正确的,最终导致网络停摆。Anatoly Yakovenko强调,Solana网络中断并不会将任何用户的资金或程序状态置于风险之中,因为 Solana 有 2,000 个不同的验证者和大约3,400 个不同的网络副本,因此如果发生严重故障,有大量备份可供选择。Anatoly Yakovenko声称,只要这些副本中的一个存活下来,就可以有效恢复整个网络。

自2020年推出以来,Solana区块链已经发生了五次重大中断,其中三次发生在2022年,每一次都是由于Solana代码或网络中的错误造成。Anatoly Yakovenko 认为,目前Solana的问题在很大程度上可以归结为人为错误,这仍然是人类编写的软件,Solana相当复杂。(decrypt)[2022/10/8 12:49:29]

事件能用来做什么?

基于Solana的气候变化项目使用“NFTrees”来拯救雨林:金色财经报道,GainForest开始与巴拉圭环境部(MADES)合作,保护巴拉圭大查科美洲区(grand Chaco Americano)数千公顷的森林。GainForest将卫星图像与数据科学相结合,旨在激励土地所有者不再砍伐树木。GainForest的目标是筹集加密货币捐款,从土地所有者手中购买森林,扩大国家公园,防止森林砍伐。该项目将基于区块链的智能合约与卫星图像、无人机摄影和数据科学相结合,自2017年赢得联合国COP 23 Hack4Climate竞赛以来,一直稳步增长。GainForest联合创始人David Dao表示,这使得GainForest成为首个政府支持的绿色加密项目。(coindesk)[2022/4/22 14:40:32]

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

Gate.io上线SOL SKL杠杆ETF产品交易:据官方公告,Gate.io已上线SOL和SKL多倍做多和做空杠杆产品,涨跌幅为对应币种市场的多倍。ETF产品在永续合约市场对冲管理,仅收取每日0.1%管理费来弥补合约市场手续费和资金费率等开销成本,但不额外收取合约资金费率。由于区块链杠杆ETF产品涨跌幅度大,风险很高,请务必谨慎参与。[2020/12/28 15:52:21]

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

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

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

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

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

事件是什么样子的?

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

动态 | SOSOLX获得虎符、DU Capital千万级人民币战略投资:据官方消息,数字货币市场数据提供商SOSOLX宣布近日获得虎符、DU Capital等机构的千万级战略投资。SOSOLX CEO文豪表示,“将利用各自的优势资源,围绕技术迭代、品牌打造、生态建设等方面进行深度合作。据了解,SOSOLX是一家数字货币市场专业数据提供商,为机构及个人投资者提供可靠的数字货币市场信息和价格数据。[2019/11/28]

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

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

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

现在,只要我们调用这个例子中的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文档,从现在开始创作吧!。

标签:SOLOLASOLASolanasol币价格走势图POLA价格Insolarsolana币今日价格

Luna热门资讯
POO:2pool LP矿池正式登陆SUN.io,参与挖矿即可获得SUN和USDD奖励-ODAILY

据官方消息,5月25日,2poolLP矿池正式登陆SUN.io,参与流动性挖矿可获取SUN和USDD奖励。当前,2poolLP矿池APY最高可达23%,质押价值已超过6100万美元.

1900/1/1 0:00:00
USD:波场去中心化算法稳定币USDD跻身CoinMarketCap市值排名Top100-ODAILY

据最新消息,波场去中心化算法稳定币USDD已成功跻身CoinMarketCap市值排名Top100的加密货币,暂列第100位.

1900/1/1 0:00:00
CRE:Crema:集中流动性DeFi协议,非EVM大陆的「西部牛仔」-ODAILY

“Crema正在接管Solana的流动性空间。”加密KOLCryptoMonarch如此说道,作为仅正式上线2个月的流动性协议,Crema在4月份成为了Solana生态中TVL增速最快的DeFi.

1900/1/1 0:00:00
区块链:艾贝链动与边界智能达成战略合作, 深耕企业级数字资产合规托管服务-ODAILY

近日,艾贝链动与边界智能建立战略级合作伙伴关系。通过发挥各自在区块链领域的产品技术能力与生态优势,共同为全球范围内持牌合规数字金融机构提供更安全可信的数字金融基础设施;同时,在元宇宙发展的大趋势.

1900/1/1 0:00:00
SOL:Ola Finance攻击事件分析:400万美元丢了,你以为这是愚人节故事?-ODAILY

北京时间2022年3月31日上午10时左右,Fuse上的OlaFinance被恶意利用,导致约400万美元资产遭受损失.

1900/1/1 0:00:00
QUO:创宇区块链:传统安全与IPFS间的安全性研究-ODAILY

前言通信技术让世界具备了更多的连接,我们每个人都在这样的连接中被影响和受益着。同时这种连接也产生了更多对于监视需求的便利.

1900/1/1 0:00:00