ethermint
ethermint copied to clipboard
RPC eth_getFilterChanges dose not work as expected with blockHash filter
System info: [Include Ethermint commit, operating system name, and other relevant details]
Steps to reproduce:
- Deploy a contract (make sure this contract will emit events), then get specific
block hash
andcontract address
- Enter the
contract address
,topic names
andblock hash
, then create afilter
parameter - Based on this
filter
parameter, try to calleth_getFilterChanges
api to getlogs
. - But the result log is null.
The test code is as follows:
func TestEth_GetFilterChanges_Addresses(t *testing.T) {
// Deploy contract which will emit event in constructor function
_, receipt := deployTestContract(t, hexAddr1, testContractKind)
blockHash := receipt["blockHash"].(string)
contractAddrHex := receipt["contractAddress"].(string)
// Create filter
param := make([]map[string]interface{}, 1)
param[0] = make(map[string]interface{})
param[0]["blockHash"] = blockHash
param[0]["addresses"] = []string{contractAddrHex}
param[0]["topics"] = []string{helloTopic, worldTopic}
rpcRes := Call(t, "eth_newFilter", param)
var ID string
require.NoError(t, json.Unmarshal(rpcRes.Result, &ID))
t.Logf("create filter focusing on contract %s in the block with block hash %s successfully with ID %s\n", contractAddrHex, blockHash, ID)
// Based on this filter id, query the changed ethlogs
changesRes := Call(t, "eth_getFilterChanges", []string{ID})
var logs []ethtypes.Log
require.NoError(t, json.Unmarshal(changesRes.Result, &logs))
require.Equal(t, 1, len(logs))
}
The error output:
=== RUN TestEth_GetFilterChanges_BlockHash
utils_test.go:143: 0x2CF4ea7dF75b513509d95946B43062E26bD88035 has deployed a contract 0x82d796c59dcf67192f5ca11182ccfdb827a8eb2d with tx hash 0xf8df01e47a4964920c89a1bc9872fff75108803bb368f0967d52ad81e7f539f0 successfully
rpc_test.go:1109: create filter focusing on contract 0x82d796c59dcf67192f5ca11182ccfdb827a8eb2d in the block with block hash 0xb5239e45133f8cc0c58e73b2675291e7290af492882c5c12a0c69ad39960ca95 successfully with ID 0x2b5917acbbe7d014feacd4978069fb2e
rpc_test.go:1116:
Error Trace: rpc_test.go:1116
Error: Not equal:
expected: 1
actual : 0
Test: TestEth_GetFilterChanges_BlockHash
--- FAIL: TestEth_GetFilterChanges_BlockHash (6.06s)
Expected behavior: [What you expected to happen]
- It should return a specific log
Actual behavior: [What actually happened]
- Developers cannot use filter api to query events with specified conditions
Additional info: [Include gist of relevant config, logs, etc.]
This issue is stale because it has been open 45 days with no activity. Remove stale
label or comment or this will be closed in 7 days.