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

37 lines
603 B
Go

package filter
import (
"context"
"sync"
"github.com/grassrootseconomics/cic-chain-events/pkg/fetch"
"github.com/zerodha/logf"
)
type (
AddressFilterOpts struct {
Cache *sync.Map
Logg logf.Logger
}
AddressFilter struct {
cache *sync.Map
logg logf.Logger
}
)
func NewAddressFilter(o AddressFilterOpts) Filter {
return &AddressFilter{
cache: o.Cache,
logg: o.Logg,
}
}
func (f *AddressFilter) Execute(_ context.Context, transaction *fetch.Transaction) (bool, error) {
if _, found := f.cache.Load(transaction.To.Address); found {
return true, nil
}
return false, nil
}