eth_getFilterChanges
フィルタのためのポーリングメソッドです。
最後にログを取得したあとに発生したログの配列を返します。
パラメータ
1. QUANTITY
フィルタ ID
code:params.js
params: [
"0x16" // 22
]
戻り値
Array - ログオブジェクトの配列。または、もし最後にログを取得してから何も変化がない場合は空の配列
eth_newBlockFilter によって作成されたフィルタは、ブロックハッシュ(DATA, 32バイト)を返します。
eth_newPendingTransactionFilter によって作成されたフィルタは、トランザクションハッシュ(DATA, 32バイト)を返します。
eth_newFilter によって作成されたフィルタは、次のパラメータをもったログオブジェクトを返します。
removed : TAG
チェーンの再構成のためにログが取り除かれた場合、true
正当なログの場合、false
logIndex : QUANTITY
ブロック内のインデックス位置
未承認のログの場合は null
transactionIndex : QUANTITY
ログが作成されたトランザクションのインデックス位置
未承認のログの場合は null
transactionHash : `DATA
32バイト
ログが作成されたトランザクションのハッシュ
未承認のログの場合は null
blockHash : DATA
ログが追加されたブロックのハッシュ
未承認のログの場合は null
blockNumber : QUANTITY
ログが追加されたブロックの番号
未承認のログの場合は null
address : DATA
20バイト
ログの起源となるアドレス
data : DATA
ログの引数(順序は決まっていない)
topics : Array of DATA
0から4個の配列
順序が固定のログ引数の DATA(32バイト)
Solidity では、最初の topic はイベントのシグネチャのハッシュ
イベントを anonymous とともに宣言した場合を除く
サンプル
code:example.sh
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterChanges","params":"0x16","id":73}'
// Result
{
"id":1,
"jsonrpc":"2.0",
"result": [{
"logIndex": "0x1", // 1
"blockNumber":"0x1b4", // 436
"blockHash": "0x8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcfdf829c5a142f1fccd7d",
"transactionHash": "0xdf829c5a142f1fccd7d8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcf",
"transactionIndex": "0x0", // 0
"address": "0x16c5785ac562ff41e2dcfdf829c5a142f1fccd7d",
"data":"0x0000000000000000000000000000000000000000000000000000000000000000",
"topics": "0x59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a5"
},{
...
}]
}
参考
https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getfilterchanges
https://infura.io/docs/wss/eth_getFilterChanges
#JSON_RPC_API
Ethereum JSON RPC API 日本語リファレンス