1703878816
区块链项目开发指南 8.1.2 可用RPC方法
1703878817
1703878818
ethereumjs-testrpc可用的RPC方法列表如下:
1703878819
1703878820
1703878821
1703878822
1703878823
1703878824
1703878825
1703878826
还有一些特殊的、非标准的方法没有包括在最初的RPC规范中:
1703878827
1703878828
·evm_snapshot。snapshot是区块链在当前区块的状态。它没有参数。返回创建的snapshot的整数ID。
1703878829
1703878830
·evm_revert。把区块链状态回撤到上一个snapshot。有一个参数,即要还原成的snapshot ID。如果没有传送snapshot ID,将回撤到最新的snapshot。返回true。
1703878831
1703878832
·evm_increaseTime。增加时间。有一个参数,即增加的时间量(以s为单位)。返回总的时间调整(以s为单位)。
1703878833
1703878834
·evm_mine。强制挖一个区块。没有参数。无论挖矿是否开始或者停止都挖区块。
1703878835
1703878836
1703878837
1703878838
1703878840
区块链项目开发指南 8.2 什么是事件主题
1703878841
1703878842
主题是用来把事件索引化(index)的数值。没有主题,就不能搜索事件。只要调用一个事件,就生成一个默认主题(被视为事件的第一个主题)。一个事件最多可以有四个主题。主题总是按照相同顺序生成。可以使用一个或者多个主题检索事件。
1703878843
1703878844
第一个主题是事件签名。剩下三个主题是索引化的参数数值。如果参数是字符串、字节或者数组,则主题是它的keccak-256哈希。
1703878845
1703878846
下面通过一个例子来帮助读者理解主题的含义。假设有一个事件采用这个形式:
1703878847
1703878848
1703878849
1703878850
1703878851
这里共生成如下四个主题:
1703878852
1703878853
·0xb62a11697c0f56e93f3957c088d492b505b9edd7fb6e7872a93b41cdb2020644。这是第一个主题,它用web3.sha3(“ping(string,int256,uint256,string,int256)”)生成。可以看到所有类型都采用规范格式。
1703878854
1703878855
·0x30ee7c926ebaf578d95b278d78bc0cde445887b0638870a26dcab901ba21d3f2。这是第二个主题,它用web3.sha3(“RandomString”)生成。
1703878856
1703878857
·第三个和第四个主题分别是0x000000000000000000000000000000000000000000000000000000000000000c和0x0000000000000000000000000000000000000000000000000000000000000017,即以十六进制表示的数值。它们分别用EthJS.Util.bufferToHex(EthJS.Util.setLengthLeft(12,32))和EthJS.Util.bufferToHex(EthJS.Util.setLengthLeft(23,32))计算。
1703878858
1703878859
以太坊节点将在内部使用主题创建索引,这样很容易基于签名和索引化的数值找到事件。
1703878860
1703878861
假设想获取前面事件的事件调用,其中第一个实参是Random String,第三个实参是23或者78,则可以用web3.eth.getFilter找到它们:
1703878862
1703878863
1703878864
[
上一页 ]
[ :1.703878815e+09 ]
[
下一页 ]