简述:事件是以太坊提供的基本功能,用来将数据记录成日志,保存在区块链上,同时事件也可用于用于和外部交互,例如和前端的交互、异步调用等作用。solidity中,事件是指操作触发的行为,而日志则是触发事件后,将数据记录在区块链上形成日志。
本文主要介绍以下几点:
- 什么是事件event、日志log
- 事件event如何定义、如何触发
- 事件event有什么作用
什么是事件event、日志log
事件event是以太坊提供的基本功能,用于将数据记录成日志保存到区块链上,用户可以自定义需要记录的数据,以及topic和索引;日志是指事件保存在区块链上的数据。事件强调操作行为,日志强调存储内容,两者是完全不同的概念。
事件event如何定义、如何触发
solidity中,使用关键字event
来定义事件,其中参数列表就是需要保存到区块链上的数据,其中最多可以有三个参数被描述成indexed
,表示该参数可以被索引,添加indexed
的参数本身不会保存,但是可以通过参数值来检索。
以下内容是使用truffle unbox webpack
命令生成的项目中已有的合约代码
contract MetaCoin {
mapping (address => uint) balances;
// 定义事件
event Transfer(address indexed _from, address indexed _to, uint256 _