@@ -3,15 +3,16 @@ package misc
33import (
44 "bytes"
55 "context"
6- "os"
7-
86 "database/sql"
97 "encoding/base64"
108 "encoding/json"
9+ "flag"
1110 "fmt"
1211 "math"
1312 "math/big"
1413 "net/http"
14+ "os"
15+ "slices"
1516 "strconv"
1617 "strings"
1718 "sync"
@@ -23,28 +24,31 @@ import (
2324 "github.com/davecgh/go-spew/spew"
2425 "github.com/ethereum/go-ethereum/common"
2526 "github.com/go-redis/redis/v8"
27+ _ "github.com/jackc/pgx/v5/stdlib"
28+ "github.com/pkg/errors"
29+ utilMath "github.com/protolambda/zrnt/eth2/util/math"
30+ go_ens "github.com/wealdtech/go-ens/v3"
31+ "golang.org/x/sync/errgroup"
32+ "google.golang.org/api/option"
33+
2634 "github.com/gobitfly/beaconchain/cmd/misc/commands"
2735 "github.com/gobitfly/beaconchain/cmd/misc/misctypes"
2836 "github.com/gobitfly/beaconchain/pkg/commons/cache"
2937 "github.com/gobitfly/beaconchain/pkg/commons/db"
38+ "github.com/gobitfly/beaconchain/pkg/commons/db2/data"
39+ "github.com/gobitfly/beaconchain/pkg/commons/db2/database"
40+ "github.com/gobitfly/beaconchain/pkg/commons/db2/metadataupdates"
3041 "github.com/gobitfly/beaconchain/pkg/commons/log"
3142 "github.com/gobitfly/beaconchain/pkg/commons/rpc"
3243 "github.com/gobitfly/beaconchain/pkg/commons/types"
3344 "github.com/gobitfly/beaconchain/pkg/commons/utils"
3445 "github.com/gobitfly/beaconchain/pkg/commons/version"
3546 "github.com/gobitfly/beaconchain/pkg/consapi"
47+ "github.com/gobitfly/beaconchain/pkg/executionlayer"
3648 edb "github.com/gobitfly/beaconchain/pkg/exporter/db"
3749 "github.com/gobitfly/beaconchain/pkg/exporter/modules"
3850 "github.com/gobitfly/beaconchain/pkg/exporter/services"
3951 "github.com/gobitfly/beaconchain/pkg/notification"
40- _ "github.com/jackc/pgx/v5/stdlib"
41- "github.com/pkg/errors"
42- utilMath "github.com/protolambda/zrnt/eth2/util/math"
43- go_ens "github.com/wealdtech/go-ens/v3"
44- "golang.org/x/sync/errgroup"
45- "google.golang.org/api/option"
46-
47- "flag"
4852
4953 "github.com/Gurpartap/storekit-go"
5054)
@@ -1607,8 +1611,6 @@ func indexOldEth1Blocks(startBlock uint64, endBlock uint64, batchSize uint64, co
16071611 return
16081612 }
16091613
1610- transforms := make ([]func (blk * types.Eth1Block , cache * freecache.Cache ) (* types.BulkMutations , * types.BulkMutations , error ), 0 )
1611-
16121614 log .Infof ("transformerFlag: %v" , transformerFlag )
16131615 transformerList := strings .Split (transformerFlag , "," )
16141616 if transformerFlag == "all" {
@@ -1618,42 +1620,29 @@ func indexOldEth1Blocks(startBlock uint64, endBlock uint64, batchSize uint64, co
16181620 return
16191621 }
16201622 log .Infof ("transformers: %v" , transformerList )
1621- importENSChanges := false
1622- /**
1623- * Add additional transformers you want to sync to this switch case
1624- **/
1625- for _ , t := range transformerList {
1626- switch t {
1627- case "TransformBlock" :
1628- transforms = append (transforms , bt .TransformBlock )
1629- case "TransformTx" :
1630- transforms = append (transforms , bt .TransformTx )
1631- case "TransformBlobTx" :
1632- transforms = append (transforms , bt .TransformBlobTx )
1633- case "TransformItx" :
1634- transforms = append (transforms , bt .TransformItx )
1635- case "TransformERC20" :
1636- transforms = append (transforms , bt .TransformERC20 )
1637- case "TransformERC721" :
1638- transforms = append (transforms , bt .TransformERC721 )
1639- case "TransformERC1155" :
1640- transforms = append (transforms , bt .TransformERC1155 )
1641- case "TransformWithdrawals" :
1642- transforms = append (transforms , bt .TransformWithdrawals )
1643- case "TransformUncle" :
1644- transforms = append (transforms , bt .TransformUncle )
1645- case "TransformEnsNameRegistered" :
1646- transforms = append (transforms , bt .TransformEnsNameRegistered )
1647- importENSChanges = true
1648- case "TransformContract" :
1649- transforms = append (transforms , bt .TransformContract )
1650- default :
1651- log .Error (nil , "Invalid transformer flag %v" , 0 )
1652- return
1653- }
1654- }
16551623
1624+ bigtable , err := database .NewBigTable (utils .Config .Bigtable .Project , utils .Config .Bigtable .Instance , nil )
1625+ if err != nil {
1626+ log .Fatal (err , "error connecting to bigtable" , 0 )
1627+ }
16561628 cache := freecache .NewCache (100 * 1024 * 1024 ) // 100 MB limit
1629+ transforms , err := executionlayer .TransformerFromList (transformerList )
1630+ if err != nil {
1631+ log .Error (nil , err .Error (), 0 )
1632+ return
1633+ }
1634+ indexer := executionlayer .NewIndexer (
1635+ executionlayer .NewAdaptorV1 (
1636+ data .NewStore (database .Wrap (bigtable , data .Table )),
1637+ metadataupdates .NewStore (database .Wrap (bigtable , metadataupdates .Table ), cache ),
1638+ ),
1639+ transforms ... ,
1640+ )
1641+
1642+ importENSChanges := false
1643+ if slices .Contains (transformerList , "TransformEnsNameRegistered" ) {
1644+ importENSChanges = true
1645+ }
16571646
16581647 to := endBlock
16591648 if endBlock == math .MaxInt64 {
@@ -1672,7 +1661,7 @@ func indexOldEth1Blocks(startBlock uint64, endBlock uint64, batchSize uint64, co
16721661 toBlock := utilMath .MinU64 (to , from + blockCount - 1 )
16731662
16741663 log .Infof ("indexing blocks %v to %v in data table ..." , from , toBlock )
1675- err := bt .IndexEventsWithTransformers (int64 (from ), int64 (toBlock ), transforms , int64 (concurrency ), cache )
1664+ err := bt .IndexEventsWithIndexer (int64 (from ), int64 (toBlock ), indexer , int64 (concurrency ))
16761665 if err != nil {
16771666 log .Error (err , "error indexing from bigtable" , 0 )
16781667 }
0 commit comments