Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 15 additions & 9 deletions pkg/logpoller/log_poller.go
Original file line number Diff line number Diff line change
Expand Up @@ -191,15 +191,16 @@ func NewLogPoller(orm ORM, ec Client, lggr logger.Logger, headTracker HeadTracke
}

type Filter struct {
Name string // see FilterName(id, args) below
Addresses evmtypes.AddressArray
EventSigs evmtypes.HashArray // list of possible values for eventsig (aka topic1)
Topic2 evmtypes.HashArray // list of possible values for topic2
Topic3 evmtypes.HashArray // list of possible values for topic3
Topic4 evmtypes.HashArray // list of possible values for topic4
Retention time.Duration // maximum amount of time to retain logs
MaxLogsKept uint64 // maximum number of logs to retain ( 0 = unlimited )
LogsPerBlock uint64 // rate limit ( maximum # of logs per block, 0 = unlimited )
Name string // see FilterName(id, args) below
Addresses evmtypes.AddressArray
EventSigs evmtypes.HashArray // list of possible values for eventsig (aka topic1)
Topic2 evmtypes.HashArray // list of possible values for topic2
Topic3 evmtypes.HashArray // list of possible values for topic3
Topic4 evmtypes.HashArray // list of possible values for topic4
Retention time.Duration // maximum amount of time to retain logs
MaxLogsKept uint64 // maximum number of logs to retain ( 0 = unlimited )
// NOTE: not supported. Must be set to 0.
LogsPerBlock uint64 // rate limit ( maximum # of logs per block, 0 = unlimited )
}

// FilterName is a suggested convenience function for clients to construct unique filter names
Expand Down Expand Up @@ -275,6 +276,11 @@ func (lp *logPoller) RegisterFilter(ctx context.Context, filter Filter) error {
return pkgerrors.Errorf("at least one event must be specified")
}

if filter.LogsPerBlock != 0 {
lp.lggr.Errorw("LogsPerBlock is not supported yet, must be 0", "name", filter.Name, "filter", filter)
// error is not returned to maintain backwards compatibility, in case any clients are using LogsPerBlock field, even though it's not supported yet
}

for _, eventSig := range filter.EventSigs {
if eventSig == [common.HashLength]byte{} {
Comment thread
dhaidashenko marked this conversation as resolved.
return pkgerrors.Errorf("empty event sig")
Expand Down
Loading