All logs in the FilterLog return value would be the same object because the for loop captured the pointer to the iteration variable.
@@ -198,8 +198,8 @@ func (ec *EthereumClient) FilterLogs(ctx *Context, query *FilterQuery) (logs *Lo
}
// Temp hack due to vm.Logs being []*vm.Log
res := make([]*types.Log, len(rawLogs))
- for i, log := range rawLogs {
- res[i] = &log
+ for i := range rawLogs {
+ res[i] = &rawLogs[i]
return &Logs{res}, nil