ipld-eth-server/libraries/shared/watcher.go

37 lines
978 B
Go
Raw Normal View History

package shared
import (
"github.com/ethereum/go-ethereum/core/types"
"github.com/vulcanize/vulcanizedb/pkg/core"
"github.com/vulcanize/vulcanizedb/pkg/datastore/postgres"
2018-08-09 21:55:02 +00:00
"github.com/vulcanize/vulcanizedb/pkg/transformers/shared"
)
type Watcher struct {
2018-08-09 21:55:02 +00:00
Transformers []shared.Transformer
2018-03-21 14:53:20 +00:00
DB postgres.DB
Blockchain core.BlockChain
}
2018-08-09 21:55:02 +00:00
func (watcher *Watcher) AddTransformers(us []shared.TransformerInitializer) {
2018-03-16 19:34:18 +00:00
for _, transformerInitializer := range us {
transformer := transformerInitializer(&watcher.DB)
2018-03-16 19:34:18 +00:00
watcher.Transformers = append(watcher.Transformers, transformer)
}
}
func (watcher *Watcher) Execute() error {
// TODO Solve checkedHeadersColumn issue
// TODO Handle start and end numbers in transformers?
var missingHeaders []core.Header
// TODO Get contract addresses and topic0s
var logs []types.Log
var err error
2018-03-16 19:34:18 +00:00
for _, transformer := range watcher.Transformers {
err = transformer.Execute(logs, missingHeaders)
}
return err
}