solidity--事件events的用法与说明

事件Events

Solidity 事件是EVM的日志功能之上的抽象。日志是不存在区块链上的,通过event可以记录链上发生的事情,并且通过日志的形式显示出来。

事件在合约中可被继承。当他们被调用时,会使参数被存储到交易的日志中 —— 一种区块链中的特殊数据结构。 这些日志与地址相关联,被并入区块链中,只要区块可以访问就一直存在(现在开始会被永久保存,在 Serenity 版本中可能会改动)。 日志和事件在合约内不可直接被访问(甚至是创建日志的合约也不能访问)。

事件允许记录到以太坊区块链。事件的一些用例包括:
        侦听事件和更新用户界面
        一种廉价的存储形式

下面是一个案例

contract Event{
    event Log(address indexed  sender, string message);//indexed可以理解为按照顺序排列的
    event AnotherLog(address indexed  sender01, string message01 , uint _i);
    event EmptyLog();

    function test() public {
        emit Log(msg.sender ,"Hello World");
        emit Log(msg.sender , "Hello Evm");
        emit  AnotherLog(msg.sender, "test  another" , 3);
        emit  EmptyLog();
    }
}

上述例子中,定义了三个事件Log,AnotherLog,EmptyLog

事件声明:
    最多可以索引 3 个参数。
    索引参数可帮助您按索引参数筛选日志

当函数test运行时,随即出发事件Log,AnotherLog,EmptyLog并将对应的值通过日志的形式输出出来。

下面是运行结果

猜你喜欢

转载自blog.csdn.net/m0_72435337/article/details/131531221
今日推荐