cic-chain-events/internal/filter/transfer_filter.go

36 lines
839 B
Go

package filter
import (
"context"
"github.com/grassrootseconomics/cic-chain-events/internal/fetch"
"github.com/zerodha/logf"
)
type TransferFilterOpts struct {
Logg logf.Logger
}
type TransferFilter struct {
logg logf.Logger
}
func NewTransferFilter(o TransferFilterOpts) Filter {
return &TransferFilter{
logg: o.Logg,
}
}
func (f *TransferFilter) Execute(ctx context.Context, transaction fetch.Transaction) (bool, error) {
switch transaction.InputData[:10] {
case "0xa9059cbb":
f.logg.Info("cUSD transfer", "block", transaction.Block.Number, "index", transaction.Index)
case "0x23b872dd":
f.logg.Info("cUSD transferFrom", "block", transaction.Block.Number, "index", transaction.Index)
default:
f.logg.Info("cUSD otherMethod", "block", transaction.Block.Number, "index", transaction.Index)
}
return true, nil
}