【文件属性】:
文件名称:什么是事件主题-linksys pap2t产品手册
文件大小:9.28MB
文件格式:PDF
更新时间:2021-06-15 17:24:59
qukuailian
8.2 什么是事件主题
主题是用来把事件索引化(index)的数值。没有主题,就不能搜
索事件。只要调用一个事件,就生成一个默认主题(被视为事件的第一
个主题)。一个事件最多可以有四个主题。主题总是按照相同顺序生
成。可以使用一个或者多个主题检索事件。
第一个主题是事件签名。剩下三个主题是索引化的参数数值。如果
参数是字符串、字节或者数组,则主题是它的keccak-256哈希。
下面通过一个例子来帮助读者理解主题的含义。假设有一个事件采
用这个形式:
这里共生成如下四个主题:
·0xb62a11697c0f56e93f3957c088d492b505b9edd7fb6e7872a93b41cdb2020644。
这是第一个主题,它用web3.sha3("ping(string,int256,uint256,
string,int256)")生成。可以看到所有类型都采用规范格式。
·0x30ee7c926ebaf578d95b278d78bc0cde445887b0638870a26dcab901ba21d3f2。
这是第二个主题,它用web3.sha3("RandomString")生成。
·第三个和第四个主题分别是
0x000000000000000000000000000000000000000000000000000000000000000c
和
0x0000000000000000000000000000000000000000000000000000000000000017,
即以十六进制表示的数值。它们分别用
EthJS.Util.bufferToHex(EthJS.Util.setLengthLeft(12,32))和
EthJS.Util.bufferToHex(EthJS.Util.setLengthLeft(23,32))计算。
以太坊节点将在内部使用主题创建索引,这样很容易基于签名和索