Filtering Event logs
itemSetTopic := crypto.Keccak256Hash([]byte("ItemSet(bytes32,bytes32)"))contractAddress := common.HexToAddress("0x9aC8B849A8b6Fc14F8dEcfa6A22dB41671B38eFB")
query := phoenixchain.FilterQuery{
FromBlock: big.NewInt(22108089),
ToBlock: big.NewInt(22108090),
Addresses: []common.Address{
contractAddress,
},
Topics: [][]common.Hash{{itemSetTopic}},
}logs, err := client.FilterLogs(context.Background(), query)
if err != nil {
log.Fatal(err)
}contractAbi, err := abi.JSON(strings.NewReader(string(store.StoreABI)))
if err != nil {
log.Fatal(err)
}
for _, vLog := range logs {
event := struct {
Key [32]byte
Value [32]byte
}{}
err := contractAbi.Unpack(&event, "ItemSet", vLog.Data)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(event.Key[:])) // storeKey
fmt.Println(string(event.Value[:])) // storeValue
}Last updated