devnet: snapshot

This commit is contained in:
2023-02-24 10:22:06 +03:00
parent 6df00ddfce
commit 85ef2ffaac
5 changed files with 114 additions and 26 deletions

View File

@@ -5,6 +5,7 @@ import (
"sync"
"github.com/grassrootseconomics/cic-chain-events/internal/filter"
"github.com/nats-io/nats.go"
)
func initAddressFilter() filter.Filter {
@@ -13,9 +14,8 @@ func initAddressFilter() filter.Filter {
cache := &sync.Map{}
// Example bootstrap addresses
cache.Store(strings.ToLower("0x617f3112bf5397D0467D315cC709EF968D9ba546"), "USDT")
cache.Store(strings.ToLower("0x765DE816845861e75A25fCA122bb6898B8B1282a"), "cUSD")
cache.Store(strings.ToLower("0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73"), "cEUR")
cache.Store(strings.ToLower("0x54c8D8718Ea9E7b2b4542e630fd36Ccab32cE74E"), "BABVoucher")
cache.Store(strings.ToLower("0xdD4F5ea484F6b16f031eF7B98F3810365493BC20"), "GasFaucet")
return filter.NewAddressFilter(filter.AddressFilterOpts{
Cache: cache,
@@ -23,14 +23,17 @@ func initAddressFilter() filter.Filter {
})
}
func initDecodeFilter() filter.Filter {
js, err := initJetStream()
if err != nil {
lo.Fatal("filters: critical error loading jetstream", "error", err)
}
return filter.NewDecodeFilter(filter.DecodeFilterOpts{
func initTransferFilter(jsCtx nats.JetStreamContext) filter.Filter {
return filter.NewTransferFilter(filter.TransferFilterOpts{
Logg: lo,
JSCtx: js,
JSCtx: jsCtx,
})
}
func initGasGiftFilter(jsCtx nats.JetStreamContext) filter.Filter {
return filter.NewGasFilter(filter.GasFilterOpts{
Logg: lo,
JSCtx: jsCtx,
})
}

View File

@@ -10,10 +10,10 @@ import (
"syscall"
"time"
"github.com/grassrootseconomics/cic-chain-events/internal/filter"
"github.com/grassrootseconomics/cic-chain-events/internal/pipeline"
"github.com/grassrootseconomics/cic-chain-events/internal/pool"
"github.com/grassrootseconomics/cic-chain-events/internal/syncer"
"github.com/grassrootseconomics/cic-chain-events/internal/filter"
"github.com/knadh/goyesql/v2"
"github.com/knadh/koanf"
"github.com/zerodha/logf"
@@ -58,13 +58,19 @@ func main() {
lo.Fatal("main: critical error loading pg store", "error", err)
}
jsCtx, err := initJetStream()
if err != nil {
lo.Fatal("main: critical error loading jetstream context", "error", err)
}
graphqlFetcher := initFetcher()
pipeline := pipeline.NewPipeline(pipeline.PipelineOpts{
BlockFetcher: graphqlFetcher,
Filters: []filter.Filter{
initAddressFilter(),
initDecodeFilter(),
initTransferFilter(jsCtx),
initGasGiftFilter(jsCtx),
},
Logg: lo,
Store: pgStore,