36 lines
839 B
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
|
|
}
|