forked from cerc-io/ipld-eth-server
Update checked headers for new transformers
- If a header was marked as checked before a transformer was added to the watcher, mark all headers since the new transformer's starting block number as unchecked.
This commit is contained in:
@@ -41,8 +41,9 @@ type EventWatcher struct {
|
||||
|
||||
func NewEventWatcher(db *postgres.DB, bc core.BlockChain) EventWatcher {
|
||||
extractor := &logs.LogExtractor{
|
||||
Fetcher: fetcher.NewLogFetcher(bc),
|
||||
CheckedHeadersRepository: repositories.NewCheckedHeadersRepository(db),
|
||||
CheckedLogsRepository: repositories.NewCheckedLogsRepository(db),
|
||||
Fetcher: fetcher.NewLogFetcher(bc),
|
||||
LogRepository: repositories.NewHeaderSyncLogRepository(db),
|
||||
Syncer: transactions.NewTransactionsSyncer(db, bc),
|
||||
}
|
||||
@@ -59,13 +60,17 @@ func NewEventWatcher(db *postgres.DB, bc core.BlockChain) EventWatcher {
|
||||
}
|
||||
|
||||
// Adds transformers to the watcher so that their logs will be extracted and delegated.
|
||||
func (watcher *EventWatcher) AddTransformers(initializers []transformer.EventTransformerInitializer) {
|
||||
func (watcher *EventWatcher) AddTransformers(initializers []transformer.EventTransformerInitializer) error {
|
||||
for _, initializer := range initializers {
|
||||
t := initializer(watcher.db)
|
||||
|
||||
watcher.LogDelegator.AddTransformer(t)
|
||||
watcher.LogExtractor.AddTransformerConfig(t.GetConfig())
|
||||
err := watcher.LogExtractor.AddTransformerConfig(t.GetConfig())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Extracts and delegates watched log events.
|
||||
|
||||
Reference in New Issue
Block a user