From 8c1510923810eb4f97ff5bace07520b6344b991d Mon Sep 17 00:00:00 2001 From: Mohammed Sohail Date: Fri, 27 Sep 2024 14:28:26 +0300 Subject: [PATCH] feat (BREAKING): evm compat tracker with mod directive replace approach --- README.md | 2 +- cmd/bootstrap/main.go | 32 ++-- cmd/service/main.go | 24 +-- cmd/service/router.go | 8 +- go.mod | 63 +++--- go.sum | 284 ++++++++++++---------------- internal/backfill/backfill.go | 4 +- internal/chain/celo_rpc.go | 188 +++++++++--------- internal/chain/celo_rpc_e2e_test.go | 152 +++++++-------- internal/chain/chain.go | 10 +- internal/chain/eth_rpc.go | 117 +++++++++++- internal/chain/eth_rpc_e2e_test.go | 98 ++++++++++ internal/handler/faucet_give.go | 16 +- internal/handler/handler.go | 2 +- internal/handler/index_add.go | 8 +- internal/handler/index_remove.go | 8 +- internal/handler/ownership.go | 8 +- internal/handler/pool_deposit.go | 8 +- internal/handler/pool_swap.go | 8 +- internal/handler/quoter_price.go | 8 +- internal/handler/seal.go | 6 +- internal/handler/token_burn.go | 8 +- internal/handler/token_mint.go | 8 +- internal/handler/token_transfer.go | 27 ++- internal/pool/pool.go | 2 +- internal/processor/processor.go | 12 +- internal/pub/jetstream.go | 2 +- internal/pub/pub.go | 2 +- internal/stats/stats.go | 4 +- internal/syncer/realtime.go | 8 +- internal/syncer/syncer.go | 14 +- pkg/router/router.go | 6 +- 32 files changed, 655 insertions(+), 492 deletions(-) create mode 100644 internal/chain/eth_rpc_e2e_test.go diff --git a/README.md b/README.md index f98bc7f..75c0496 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ We provide pre-built images for `linux/amd64`. See the packages tab on Github. If you are on any other platform: ```bash -git clone https://github.com/grassrootseconomics/celo-tracker.git +git clone https://github.com/grassrootseconomics/eth-tracker.git cd celo-tracker docker buildx build --build-arg BUILD=$(git rev-parse --short HEAD) --tag celo-tracker:$(git rev-parse --short HEAD) --tag celo-tracker:latest . docker images diff --git a/cmd/bootstrap/main.go b/cmd/bootstrap/main.go index 3c4d9d1..088105d 100644 --- a/cmd/bootstrap/main.go +++ b/cmd/bootstrap/main.go @@ -7,14 +7,14 @@ import ( "os" "time" - "github.com/celo-org/celo-blockchain/common" - "github.com/grassrootseconomics/celo-tracker/internal/cache" - "github.com/grassrootseconomics/celo-tracker/internal/chain" - "github.com/grassrootseconomics/celo-tracker/internal/util" - "github.com/grassrootseconomics/celoutils/v3" - "github.com/grassrootseconomics/w3-celo" - "github.com/grassrootseconomics/w3-celo/module/eth" + "github.com/ethereum/go-ethereum/common" + "github.com/grassrootseconomics/eth-tracker/internal/cache" + "github.com/grassrootseconomics/eth-tracker/internal/chain" + "github.com/grassrootseconomics/eth-tracker/internal/util" + "github.com/grassrootseconomics/ethutils" "github.com/knadh/koanf/v2" + "github.com/lmittmann/w3" + "github.com/lmittmann/w3/module/eth" ) const cacheType = "redis" @@ -44,7 +44,7 @@ func main() { quoterGetter = w3.MustNewFunc("quoter()", "address") ) - chain, err := chain.NewRPCFetcher(chain.CeloRPCOpts{ + chain, err := chain.NewRPCFetcher(chain.EthRPCOpts{ RPCEndpoint: ko.MustString("chain.rpc_endpoint"), ChainID: ko.MustInt64("chain.chainid"), }) @@ -67,13 +67,13 @@ func main() { defer cancel() for _, registry := range ko.MustStrings("bootstrap.ge_registries") { - registryMap, err := chain.Provider().RegistryMap(ctx, celoutils.HexToAddress(registry)) + registryMap, err := chain.Provider().RegistryMap(ctx, ethutils.HexToAddress(registry)) if err != nil { lo.Error("could not fetch registry", "error", err) os.Exit(1) } - if tokenIndex := registryMap[celoutils.TokenIndex]; tokenIndex != celoutils.ZeroAddress { + if tokenIndex := registryMap[ethutils.TokenIndex]; tokenIndex != ethutils.ZeroAddress { tokenIndexIter, err := chain.Provider().NewBatchIterator(ctx, tokenIndex) if err != nil { lo.Error("could not create token index iter", "error", err) @@ -99,7 +99,7 @@ func main() { } } - if poolIndex := registryMap[celoutils.PoolIndex]; poolIndex != celoutils.ZeroAddress { + if poolIndex := registryMap[ethutils.PoolIndex]; poolIndex != ethutils.ZeroAddress { poolIndexIter, err := chain.Provider().NewBatchIterator(ctx, poolIndex) if err != nil { lo.Error("cache could create pool index iter", "error", err) @@ -132,13 +132,13 @@ func main() { lo.Error("error fetching pool token index and/or quoter", "error", err) os.Exit(1) } - if priceQuoter != celoutils.ZeroAddress { + if priceQuoter != ethutils.ZeroAddress { if err := cache.Add(ctx, priceQuoter.Hex()); err != nil { lo.Error("redis error setting key", "error", err) os.Exit(1) } } - if poolTokenIndex != celoutils.ZeroAddress { + if poolTokenIndex != ethutils.ZeroAddress { if err := cache.Add(ctx, poolTokenIndex.Hex()); err != nil { lo.Error("redis error setting key", "error", err) os.Exit(1) @@ -161,7 +161,7 @@ func main() { } lo.Debug("index batch", "index", poolTokenIndex.Hex(), "size", len(batch)) for _, address := range batch { - if address != celoutils.ZeroAddress { + if address != ethutils.ZeroAddress { if err := cache.Add(ctx, address.Hex()); err != nil { lo.Error("redis error setting key", "error", err) os.Exit(1) @@ -174,7 +174,7 @@ func main() { } } - if accountsIndex := registryMap[celoutils.AccountIndex]; accountsIndex != celoutils.ZeroAddress { + if accountsIndex := registryMap[ethutils.AccountIndex]; accountsIndex != ethutils.ZeroAddress { accountsIndexIter, err := chain.Provider().NewBatchIterator(ctx, accountsIndex) if err != nil { lo.Error("could not create accounts index iter", "error", err) @@ -222,7 +222,7 @@ func main() { } } - if err := cache.Remove(ctx, celoutils.ZeroAddress.Hex()); err != nil { + if err := cache.Remove(ctx, ethutils.ZeroAddress.Hex()); err != nil { lo.Error("redis error deleting key", "error", err) os.Exit(1) } diff --git a/cmd/service/main.go b/cmd/service/main.go index 1b88c0f..3cdf2f3 100644 --- a/cmd/service/main.go +++ b/cmd/service/main.go @@ -13,17 +13,17 @@ import ( "syscall" "time" - "github.com/grassrootseconomics/celo-tracker/db" - "github.com/grassrootseconomics/celo-tracker/internal/api" - "github.com/grassrootseconomics/celo-tracker/internal/backfill" - "github.com/grassrootseconomics/celo-tracker/internal/cache" - "github.com/grassrootseconomics/celo-tracker/internal/chain" - "github.com/grassrootseconomics/celo-tracker/internal/pool" - "github.com/grassrootseconomics/celo-tracker/internal/processor" - "github.com/grassrootseconomics/celo-tracker/internal/pub" - "github.com/grassrootseconomics/celo-tracker/internal/stats" - "github.com/grassrootseconomics/celo-tracker/internal/syncer" - "github.com/grassrootseconomics/celo-tracker/internal/util" + "github.com/grassrootseconomics/eth-tracker/db" + "github.com/grassrootseconomics/eth-tracker/internal/api" + "github.com/grassrootseconomics/eth-tracker/internal/backfill" + "github.com/grassrootseconomics/eth-tracker/internal/cache" + "github.com/grassrootseconomics/eth-tracker/internal/chain" + "github.com/grassrootseconomics/eth-tracker/internal/pool" + "github.com/grassrootseconomics/eth-tracker/internal/processor" + "github.com/grassrootseconomics/eth-tracker/internal/pub" + "github.com/grassrootseconomics/eth-tracker/internal/stats" + "github.com/grassrootseconomics/eth-tracker/internal/syncer" + "github.com/grassrootseconomics/eth-tracker/internal/util" "github.com/knadh/koanf/v2" ) @@ -52,7 +52,7 @@ func main() { var wg sync.WaitGroup ctx, stop := notifyShutdown() - chain, err := chain.NewRPCFetcher(chain.CeloRPCOpts{ + chain, err := chain.NewRPCFetcher(chain.EthRPCOpts{ RPCEndpoint: ko.MustString("chain.rpc_endpoint"), ChainID: ko.MustInt64("chain.chainid"), }) diff --git a/cmd/service/router.go b/cmd/service/router.go index 3114a58..90ff053 100644 --- a/cmd/service/router.go +++ b/cmd/service/router.go @@ -1,10 +1,10 @@ package main import ( - "github.com/grassrootseconomics/celo-tracker/internal/cache" - "github.com/grassrootseconomics/celo-tracker/internal/handler" - "github.com/grassrootseconomics/celo-tracker/pkg/router" - "github.com/grassrootseconomics/w3-celo" + "github.com/grassrootseconomics/eth-tracker/internal/cache" + "github.com/grassrootseconomics/eth-tracker/internal/handler" + "github.com/grassrootseconomics/eth-tracker/pkg/router" + "github.com/lmittmann/w3" ) func bootstrapEventRouter(cacheProvider cache.Cache, pubCB router.Callback) *router.Router { diff --git a/go.mod b/go.mod index 2f88320..1f5e854 100644 --- a/go.mod +++ b/go.mod @@ -1,19 +1,21 @@ -module github.com/grassrootseconomics/celo-tracker +module github.com/grassrootseconomics/eth-tracker go 1.23.0 +replace github.com/ethereum/go-ethereum v1.14.8 => github.com/celo-org/op-geth v1.101408.1-0.20240927090724-573364d396d3 + require ( github.com/VictoriaMetrics/metrics v1.35.1 github.com/alitto/pond v1.9.2 github.com/bits-and-blooms/bitset v1.14.3 - github.com/celo-org/celo-blockchain v1.8.4 - github.com/grassrootseconomics/celoutils/v3 v3.3.1 - github.com/grassrootseconomics/w3-celo v0.19.0 + github.com/ethereum/go-ethereum v1.14.8 + github.com/grassrootseconomics/ethutils v1.3.0 github.com/kamikazechaser/common v0.2.0 github.com/knadh/koanf/parsers/toml v0.1.0 github.com/knadh/koanf/providers/env v0.1.0 github.com/knadh/koanf/providers/file v1.1.0 github.com/knadh/koanf/v2 v2.1.1 + github.com/lmittmann/w3 v0.17.0 github.com/nats-io/nats.go v1.36.0 github.com/puzpuzpuz/xsync/v3 v3.4.0 github.com/redis/rueidis v1.0.46 @@ -23,62 +25,47 @@ require ( ) require ( - filippo.io/edwards25519 v1.0.0-alpha.2 // indirect + github.com/BurntSushi/toml v1.4.0 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/StackExchange/wmi v1.2.1 // indirect - github.com/VictoriaMetrics/fastcache v1.12.2 // indirect - github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect - github.com/celo-org/celo-bls-go v0.3.4 // indirect - github.com/celo-org/celo-bls-go-android v0.3.3 // indirect - github.com/celo-org/celo-bls-go-ios v0.3.3 // indirect - github.com/celo-org/celo-bls-go-linux v0.3.3 // indirect - github.com/celo-org/celo-bls-go-macos v0.3.3 // indirect - github.com/celo-org/celo-bls-go-other v0.3.3 // indirect - github.com/celo-org/celo-bls-go-windows v0.3.3 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/deckarep/golang-set v1.8.0 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect + github.com/consensys/bavard v0.1.13 // indirect + github.com/consensys/gnark-crypto v0.12.1 // indirect + github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/deckarep/golang-set/v2 v2.6.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect + github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20240821192748-42bd03ba8313 // indirect + github.com/ethereum/c-kzg-4844 v1.0.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/go-stack/stack v1.8.1 // indirect github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 // indirect - github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect - github.com/google/go-cmp v0.6.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect - github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect - github.com/hdevalence/ed25519consensus v0.0.0-20201207055737-7fde80a9d5ff // indirect - github.com/holiman/bloomfilter/v2 v2.0.3 // indirect - github.com/holiman/uint256 v1.3.0 // indirect - github.com/huin/goupnp v1.3.0 // indirect - github.com/jackpal/go-nat-pmp v1.0.2 // indirect + github.com/holiman/uint256 v1.3.1 // indirect github.com/klauspost/compress v1.17.2 // indirect github.com/knadh/koanf/maps v0.1.1 // indirect github.com/lmittmann/tint v1.0.4 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/mmcloughlin/addchain v0.4.0 // indirect github.com/nats-io/nkeys v0.4.7 // indirect github.com/nats-io/nuid v1.0.1 // indirect - github.com/olekukonko/tablewriter v0.0.5 // indirect - github.com/onsi/gomega v1.34.1 // indirect github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/tsdb v0.7.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rivo/uniseg v0.4.2 // indirect github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect - github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect + github.com/supranational/blst v0.3.11 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/valyala/fastrand v1.1.0 // indirect github.com/valyala/histogram v1.2.0 // indirect - golang.org/x/crypto v0.25.0 // indirect + golang.org/x/crypto v0.26.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/net v0.27.0 // indirect - golang.org/x/sync v0.7.0 // indirect + golang.org/x/mod v0.20.0 // indirect + golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.24.0 // indirect - golang.org/x/text v0.16.0 // indirect - golang.org/x/time v0.5.0 // indirect - gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect + golang.org/x/time v0.6.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + rsc.io/tmplfunc v0.0.3 // indirect ) diff --git a/go.sum b/go.sum index f2656e3..ecabb6f 100644 --- a/go.sum +++ b/go.sum @@ -1,118 +1,105 @@ -filippo.io/edwards25519 v1.0.0-alpha.2 h1:EWbZLqGEPSIj2W69gx04KtNVkyPIfe3uj0DhDQJonbQ= -filippo.io/edwards25519 v1.0.0-alpha.2/go.mod h1:X+pm78QAUPtFLi1z9PYIlS/bdDnvbCOGKtZ+ACWEf7o= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/DataDog/zstd v1.5.6-0.20230824185856-869dae002e5e h1:ZIWapoIRN1VqT8GR8jAwb1Ie9GyehWjVcGh32Y2MznE= +github.com/DataDog/zstd v1.5.6-0.20230824185856-869dae002e5e/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI= github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI= github.com/VictoriaMetrics/metrics v1.35.1 h1:o84wtBKQbzLdDy14XeskkCZih6anG+veZ1SwJHFGwrU= github.com/VictoriaMetrics/metrics v1.35.1/go.mod h1:r7hveu6xMdUACXvB8TYdAj8WEsKzWB0EkpJN+RDtOf8= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alitto/pond v1.9.2 h1:9Qb75z/scEZVCoSU+osVmQ0I0JOeLfdTDafrbcJ8CLs= github.com/alitto/pond v1.9.2/go.mod h1:xQn3P/sHTYcU/1BR3i86IGIrilcrGC2LiS+E2+CJWsI= -github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= -github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bits-and-blooms/bitset v1.14.3 h1:Gd2c8lSNf9pKXom5JtD7AaKO8o7fGQ2LtFj1436qilA= github.com/bits-and-blooms/bitset v1.14.3/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= -github.com/btcsuite/btcd v0.23.2 h1:/YOgUp25sdCnP5ho6Hl3s0E438zlX+Kak7E6TgBgoT0= -github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k= -github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU= +github.com/btcsuite/btcd/btcec/v2 v2.3.4 h1:3EJjcN70HCu/mwqlUsGK8GcNVyLVxFDlWurTXGPFfiQ= +github.com/btcsuite/btcd/btcec/v2 v2.3.4/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= -github.com/buraksezer/consistent v0.0.0-20191006190839-693edf70fd72 h1:fUmDBbSvv1uOzo/t8WaxZMVb7BxJ8JECo5lGoR9c5bA= -github.com/buraksezer/consistent v0.0.0-20191006190839-693edf70fd72/go.mod h1:OEE5igu/CDjGegM1Jn6ZMo7R6LlV/JChAkjfQQIRLpg= -github.com/celo-org/celo-blockchain v1.8.4 h1:QJiRRGcZyO+PutT8WkFO1juORANAOGhN8yGNP7HvBqk= -github.com/celo-org/celo-blockchain v1.8.4/go.mod h1:0udpV9QnZ2rnVu3vf8G9Wjs5di6Bf9urjwGVgAUEGB8= -github.com/celo-org/celo-bls-go v0.3.4 h1:slNePT/gVjgUi7f8M4KTwBz/YYgv3JWU6XqyY0xKN84= -github.com/celo-org/celo-bls-go v0.3.4/go.mod h1:qDZHMC3bBqOw5qle28cRtKlEyJhslZtckcc2Tomqdks= -github.com/celo-org/celo-bls-go-android v0.3.3 h1:iZ2Gragn3JItkptmppeq1SENmNVc1f1W25UE4u231HY= -github.com/celo-org/celo-bls-go-android v0.3.3/go.mod h1:cFgtFRH8+6x5b+EyG5SqniXY3aKd03NBSGDgITscX34= -github.com/celo-org/celo-bls-go-ios v0.3.3 h1:/yHaEYft9WfXyPIGuJz7V2/r+tp2IqSpkvKsMsVgbuY= -github.com/celo-org/celo-bls-go-ios v0.3.3/go.mod h1:eaSoMpx29YV5oF7jXVChzJpNfxeZHnAa8G4PjL5CyW0= -github.com/celo-org/celo-bls-go-linux v0.3.3 h1:ukSQSIRyFCQeC1i7LJJunRKvlLuG1JMwNZ6DQZC51fE= -github.com/celo-org/celo-bls-go-linux v0.3.3/go.mod h1:DVpJadg22OrxBtMb0ub6iNVdqDBL/r6EDdWVAA0bHa0= -github.com/celo-org/celo-bls-go-macos v0.3.3 h1:H4ZGc+kS3e/w9Q6qru6FtlkYtVDS8eIQgw6UURB/Jlo= -github.com/celo-org/celo-bls-go-macos v0.3.3/go.mod h1:mYPuRqGMVxj6yZUeL6Q6ggtP52HPBS1jz+FvBPXQ7QA= -github.com/celo-org/celo-bls-go-other v0.3.3 h1:/Q9SLJK22hibPm/WI/OPxbBmgXTgUhjUgobfzz7qj/w= -github.com/celo-org/celo-bls-go-other v0.3.3/go.mod h1:tNxZNfekzyT7TdYQbyNPhkfpcYtA3KCU/IKX5FNxM/U= -github.com/celo-org/celo-bls-go-windows v0.3.3 h1:0IP+Ad9l+op50TIfkmFr+j7+TIjKksVROe+EoF7Ixa4= -github.com/celo-org/celo-bls-go-windows v0.3.3/go.mod h1:82GC5iJA9Qw5gynhYqR8ht3J+l/MO8eSNzgSTMI8UdA= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/celo-org/op-geth v1.101408.1-0.20240927090724-573364d396d3 h1:W+lKfZRELXrGt/U+C82thNuVpjcutY/h7mQKLhEynT8= +github.com/celo-org/op-geth v1.101408.1-0.20240927090724-573364d396d3/go.mod h1:Mk8AhvlqFbjI9oW2ymThSSoqc6kiEH0/tCmHGMEu6ac= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsPppp4= -github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= +github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I= +github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8= +github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce h1:giXvy4KSc/6g/esnpM7Geqxka4WSqI1SZc7sMJFd3y4= +github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v1.1.2 h1:CUh2IPtR4swHlEj48Rhfzw6l/d0qA31fItcIszQVIsA= +github.com/cockroachdb/pebble v1.1.2/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= +github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= +github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= +github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= +github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= +github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/crate-crypto/go-ipa v0.0.0-20240223125850-b1e8a79f509c h1:uQYC5Z1mdLRPrZhHjHxufI8+2UG/i25QG92j0Er9p6I= +github.com/crate-crypto/go-ipa v0.0.0-20240223125850-b1e8a79f509c/go.mod h1:geZJZH3SzKCqnz5VT0q/DyIG/tvu/dZk+VIfXicupJs= +github.com/crate-crypto/go-kzg-4844 v1.0.0 h1:TsSgHwrkTKecKJ4kadtHi4b3xHW5dCFUDFnUp1TsawI= +github.com/crate-crypto/go-kzg-4844 v1.0.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= +github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= -github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20240821192748-42bd03ba8313 h1:SVSFg8ccdRBJxOdRS1pK8oIHvMufiPAQz1gkQsEPnZc= +github.com/ethereum-optimism/superchain-registry/superchain v0.0.0-20240821192748-42bd03ba8313/go.mod h1:XaVXL9jg8BcyOeugECgIUGa9Y3DjYJj71RHmb5qon6M= +github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA= +github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0= +github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 h1:KrE8I4reeVvf7C1tm8elRjj4BdscTYzz/WAbYyf/JI4= +github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0/go.mod h1:D9AJLVXSyZQXJQVk8oh1EwjISE+sJTn2duYIZC0dy3w= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/go-kit/kit v0.8.0 h1:Wz+5lgoB0kkuqLEc6NVmwRknTKP6dTGbSqvhZtBI/j0= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI= +github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= +github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= -github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= -github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= -github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 h1:TQcrn6Wq+sKGkpyPvppOz99zsMBaUOKXq6HSv655U1c= github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= +github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk= github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/grassrootseconomics/celoutils/v3 v3.3.1 h1:ehf0eG2c8BfR2DojOm/nk8SQ44DyTFxXKISw1dHym/w= -github.com/grassrootseconomics/celoutils/v3 v3.3.1/go.mod h1:HTHFNnWmvL6rY096xAraOMV3POYFAquoTABP6ogaF7U= -github.com/grassrootseconomics/w3-celo v0.19.0 h1:3O5GK2os3/f9D/5oKsB0YxGyO5S3aqon/kx7ckyjQ4o= -github.com/grassrootseconomics/w3-celo v0.19.0/go.mod h1:M3KJaj25DspF9siaqNXyamAuzC5DmWXx74tpyPp+R4Y= +github.com/grassrootseconomics/ethutils v1.3.0 h1:0uX9HG7EujqoNyueYN2gB40zki50AIdxuNLmU0FZroU= +github.com/grassrootseconomics/ethutils v1.3.0/go.mod h1:Wuv1VEZrkLIXqTSEYI3Nh9HG/ZHOUQ+U+xvWJ8QtjgQ= github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE= github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hdevalence/ed25519consensus v0.0.0-20201207055737-7fde80a9d5ff h1:LeVKjw8pcDQj7WVVnbFvbD7ovcv+r/l15ka1NH6Lswc= -github.com/hdevalence/ed25519consensus v0.0.0-20201207055737-7fde80a9d5ff/go.mod h1:Feit0l8NcNO4g69XNjwvsR0LGcwMMfzI1TF253rOIlQ= +github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4 h1:X4egAf/gcS1zATw6wn4Ej8vjuVGxeHdan+bRb2ebyv4= +github.com/holiman/billy v0.0.0-20240216141850-2abb0c79d3c4/go.mod h1:5GuXa7vkL8u9FkFuWdVvfR5ix8hRB7DbOAaYULamFpc= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= -github.com/holiman/uint256 v1.3.0 h1:4wdcm/tnd0xXdu7iS3ruNvxkWwrb4aeBQv19ayYn8F4= -github.com/holiman/uint256 v1.3.0/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/holiman/uint256 v1.3.1 h1:JfTzmih28bittyHM8z360dCjIA9dbPIBlcTI6lmctQs= +github.com/holiman/uint256 v1.3.1/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E= github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= @@ -131,21 +118,26 @@ github.com/knadh/koanf/providers/file v1.1.0 h1:MTjA+gRrVl1zqgetEAIaXHqYje0XSosx github.com/knadh/koanf/providers/file v1.1.0/go.mod h1:/faSBcv2mxPVjFrXck95qeoyoZ5myJ6uxN8OOVNJJCI= github.com/knadh/koanf/v2 v2.1.1 h1:/R8eXqasSTsmDCsAyYj+81Wteg8AqrV9CP6gvsTsOmM= github.com/knadh/koanf/v2 v2.1.1/go.mod h1:4mnTRbZCK+ALuBXHZMjDfG9y714L7TykVnZkXbMU3Es= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= +github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= github.com/lmittmann/tint v1.0.4 h1:LeYihpJ9hyGvE0w+K2okPTGUdVLfng1+nDNVR4vWISc= github.com/lmittmann/tint v1.0.4/go.mod h1:HIS3gSy7qNwGCj+5oRjAutErFBl4BzdQP6cJZ0NfMwE= +github.com/lmittmann/w3 v0.17.0 h1:Bsb6xSNU+woj7+VO7ERBCus97oCy6EWWKVUmoFbt534= +github.com/lmittmann/w3 v0.17.0/go.mod h1:sQXu3RJpP6Oj398bFyHeFiMHUExVxVOzoKrWZd/+yZ0= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= @@ -154,41 +146,33 @@ github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjU github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= +github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= +github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= github.com/nats-io/nats.go v1.36.0 h1:suEUPuWzTSse/XhESwqLxXGuj8vGRuPRoG7MoRN/qyU= github.com/nats-io/nats.go v1.36.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= -github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.12.0 h1:C+UIj/QWtmqY13Arb8kwMt5j34/0Z2iKamrJ+ryC0Gg= +github.com/prometheus/client_golang v1.12.0/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a h1:CmF68hwI0XsOQ5UwlBopMi2Ow4Pbg32akc4KIVCOm+Y= +github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/puzpuzpuz/xsync/v3 v3.4.0 h1:DuVBAdXuGFHv8adVXjWWZ63pJq+NRXOWVXlKDBZ+mJ4= github.com/puzpuzpuz/xsync/v3 v3.4.0/go.mod h1:VjzYrABPabuM4KyBh1Ftq6u8nhwY5tBPKP9jpmh0nnA= github.com/redis/rueidis v1.0.46 h1:D4XWUZU2ByZpWky+LfIB/AouuLCkIL44BDI2NlJN63E= @@ -196,98 +180,70 @@ github.com/redis/rueidis v1.0.46/go.mod h1:by+34b0cFXndxtYmPAHpoTHO5NkosDlBvhexo github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.2 h1:YwD0ulJSJytLpiaWua0sBDusfsCZohxjxzVTYjwxfV8= github.com/rivo/uniseg v0.4.2/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rjeczalik/notify v0.9.1 h1:CLCKso/QK1snAlnhNR/CNvNiFU2saUtjV0bx3EwNeCE= -github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= +github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= +github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= +github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/uptrace/bunrouter v1.0.22 h1:634bRGogHxjMaSqc5a3MjM/sisS/MkfXhWJ/WZXrktc= github.com/uptrace/bunrouter v1.0.22/go.mod h1:O3jAcl+5qgnF+ejhgkmbceEk0E/mqaK+ADOocdNpY8M= +github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs= +github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G8= github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ= github.com/valyala/histogram v1.2.0 h1:wyYGAZZt3CpwUiIb9AU/Zbllg1llXyrtApRS815OLoQ= github.com/valyala/histogram v1.2.0/go.mod h1:Hb4kBwb4UxsaNbbbh+RRz8ZR6pdodR57tzWUS3BUzXY= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0= go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= -golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= +golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= -golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= +golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= -gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/urfave/cli.v1 v1.20.0 h1:NdAVW6RYxDif9DhDHaAortIu956m2c0v+09AZBPTbE0= -gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= +gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= +rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= diff --git a/internal/backfill/backfill.go b/internal/backfill/backfill.go index 30e16f3..8eba2a6 100644 --- a/internal/backfill/backfill.go +++ b/internal/backfill/backfill.go @@ -5,8 +5,8 @@ import ( "log/slog" "time" - "github.com/grassrootseconomics/celo-tracker/db" - "github.com/grassrootseconomics/celo-tracker/internal/pool" + "github.com/grassrootseconomics/eth-tracker/db" + "github.com/grassrootseconomics/eth-tracker/internal/pool" ) type ( diff --git a/internal/chain/celo_rpc.go b/internal/chain/celo_rpc.go index e25c4bf..35005a3 100644 --- a/internal/chain/celo_rpc.go +++ b/internal/chain/celo_rpc.go @@ -1,121 +1,121 @@ package chain -import ( - "context" - "math/big" - "net/http" - "time" +// import ( +// "context" +// "math/big" +// "net/http" +// "time" - "github.com/celo-org/celo-blockchain/common" - "github.com/celo-org/celo-blockchain/core/types" - "github.com/celo-org/celo-blockchain/rpc" - "github.com/grassrootseconomics/celoutils/v3" - "github.com/grassrootseconomics/w3-celo" - "github.com/grassrootseconomics/w3-celo/module/eth" - "github.com/grassrootseconomics/w3-celo/w3types" -) +// "github.com/ethereum/go-ethereum/common" +// "github.com/ethereum/go-ethereum/core/types" +// "github.com/ethereum/go-ethereum/rpc" +// "github.com/grassrootseconomics/ethutils" +// "github.com/lmittmann/w3" +// "github.com/lmittmann/w3/module/eth" +// "github.com/lmittmann/w3/w3types" +// ) -type ( - CeloRPCOpts struct { - RPCEndpoint string - ChainID int64 - } +// type ( +// CeloRPCOpts struct { +// RPCEndpoint string +// ChainID int64 +// } - CeloRPC struct { - provider *celoutils.Provider - } -) +// CeloRPC struct { +// provider *ethutils.Provider +// } +// ) -func NewRPCFetcher(o CeloRPCOpts) (Chain, error) { - customRPCClient, err := lowTimeoutRPCClient(o.RPCEndpoint) - if err != nil { - return nil, err - } +// func NewRPCFetcher(o CeloRPCOpts) (Chain, error) { +// customRPCClient, err := lowTimeoutRPCClient(o.RPCEndpoint) +// if err != nil { +// return nil, err +// } - chainProvider := celoutils.NewProvider( - o.RPCEndpoint, - o.ChainID, - celoutils.WithClient(customRPCClient), - ) +// chainProvider := ethutils.NewProvider( +// o.RPCEndpoint, +// o.ChainID, +// ethutils.WithClient(customRPCClient), +// ) - return &CeloRPC{ - provider: chainProvider, - }, nil -} +// return &CeloRPC{ +// provider: chainProvider, +// }, nil +// } -func lowTimeoutRPCClient(rpcEndpoint string) (*w3.Client, error) { - httpClient := &http.Client{ - Timeout: 10 * time.Second, - } +// func lowTimeoutRPCClient(rpcEndpoint string) (*w3.Client, error) { +// httpClient := &http.Client{ +// Timeout: 10 * time.Second, +// } - rpcClient, err := rpc.DialHTTPWithClient( - rpcEndpoint, - httpClient, - ) - if err != nil { - return nil, err - } +// rpcClient, err := rpc.DialHTTPWithClient( +// rpcEndpoint, +// httpClient, +// ) +// if err != nil { +// return nil, err +// } - return w3.NewClient(rpcClient), nil -} +// return w3.NewClient(rpcClient), nil +// } -func (c *CeloRPC) GetBlocks(ctx context.Context, blockNumbers []uint64) ([]types.Block, error) { - blocksCount := len(blockNumbers) - calls := make([]w3types.RPCCaller, blocksCount) - blocks := make([]types.Block, blocksCount) +// func (c *CeloRPC) GetBlocks(ctx context.Context, blockNumbers []uint64) ([]types.Block, error) { +// blocksCount := len(blockNumbers) +// calls := make([]w3types.RPCCaller, blocksCount) +// blocks := make([]types.Block, blocksCount) - for i, v := range blockNumbers { - calls[i] = eth.BlockByNumber(new(big.Int).SetUint64(v)).Returns(&blocks[i]) - } +// for i, v := range blockNumbers { +// calls[i] = eth.BlockByNumber(new(big.Int).SetUint64(v)).Returns(&blocks[i]) +// } - if err := c.provider.Client.CallCtx(ctx, calls...); err != nil { - return nil, err - } +// if err := c.provider.Client.CallCtx(ctx, calls...); err != nil { +// return nil, err +// } - return blocks, nil -} +// return blocks, nil +// } -func (c *CeloRPC) GetBlock(ctx context.Context, blockNumber uint64) (*types.Block, error) { - var block types.Block - blockCall := eth.BlockByNumber(new(big.Int).SetUint64(blockNumber)).Returns(&block) +// func (c *CeloRPC) GetBlock(ctx context.Context, blockNumber uint64) (*types.Block, error) { +// var block types.Block +// blockCall := eth.BlockByNumber(new(big.Int).SetUint64(blockNumber)).Returns(&block) - if err := c.provider.Client.CallCtx(ctx, blockCall); err != nil { - return nil, err - } +// if err := c.provider.Client.CallCtx(ctx, blockCall); err != nil { +// return nil, err +// } - return &block, nil -} +// return &block, nil +// } -func (c *CeloRPC) GetLatestBlock(ctx context.Context) (uint64, error) { - var latestBlock big.Int - latestBlockCall := eth.BlockNumber().Returns(&latestBlock) +// func (c *CeloRPC) GetLatestBlock(ctx context.Context) (uint64, error) { +// var latestBlock big.Int +// latestBlockCall := eth.BlockNumber().Returns(&latestBlock) - if err := c.provider.Client.CallCtx(ctx, latestBlockCall); err != nil { - return 0, err - } +// if err := c.provider.Client.CallCtx(ctx, latestBlockCall); err != nil { +// return 0, err +// } - return latestBlock.Uint64(), nil -} +// return latestBlock.Uint64(), nil +// } -func (c *CeloRPC) GetTransaction(ctx context.Context, txHash common.Hash) (*types.Transaction, error) { - var transaction types.Transaction - if err := c.provider.Client.CallCtx(ctx, eth.Tx(txHash).Returns(&transaction)); err != nil { - return nil, err - } +// func (c *CeloRPC) GetTransaction(ctx context.Context, txHash common.Hash) (*types.Transaction, error) { +// var transaction types.Transaction +// if err := c.provider.Client.CallCtx(ctx, eth.Tx(txHash).Returns(&transaction)); err != nil { +// return nil, err +// } - return &transaction, nil -} +// return &transaction, nil +// } -func (c *CeloRPC) GetReceipts(ctx context.Context, blockNumber *big.Int) (types.Receipts, error) { - var receipts types.Receipts +// func (c *CeloRPC) GetReceipts(ctx context.Context, blockNumber *big.Int) (types.Receipts, error) { +// var receipts types.Receipts - if err := c.provider.Client.CallCtx(ctx, eth.BlockReceipts(blockNumber).Returns(&receipts)); err != nil { - return nil, err - } +// if err := c.provider.Client.CallCtx(ctx, eth.BlockReceipts(blockNumber).Returns(&receipts)); err != nil { +// return nil, err +// } - return receipts, nil -} +// return receipts, nil +// } -func (c *CeloRPC) Provider() *celoutils.Provider { - return c.provider -} +// func (c *CeloRPC) Provider() *ethutils.Provider { +// return c.provider +// } diff --git a/internal/chain/celo_rpc_e2e_test.go b/internal/chain/celo_rpc_e2e_test.go index 4d80ada..c7346e8 100644 --- a/internal/chain/celo_rpc_e2e_test.go +++ b/internal/chain/celo_rpc_e2e_test.go @@ -1,98 +1,98 @@ package chain -import ( - "context" - "testing" - "time" +// import ( +// "context" +// "testing" +// "time" - "github.com/stretchr/testify/require" -) +// "github.com/stretchr/testify/require" +// ) -const ( - testRPCEndpoint = "https://celo.archive.grassecon.net" - testChainID = 42220 -) +// const ( +// testRPCEndpoint = "https://celo.archive.grassecon.net" +// testChainID = 42220 +// ) -func setupCeloRPC() (Chain, error) { - opts := CeloRPCOpts{ - RPCEndpoint: testRPCEndpoint, - ChainID: testChainID, - } - return NewRPCFetcher(opts) -} +// func setupCeloRPC() (Chain, error) { +// opts := CeloRPCOpts{ +// RPCEndpoint: testRPCEndpoint, +// ChainID: testChainID, +// } +// return NewRPCFetcher(opts) +// } -func TestRPC_GetBlocks(t *testing.T) { - rpcFetcher, err := setupCeloRPC() - require.NoError(t, err) +// func TestRPC_GetBlocks(t *testing.T) { +// rpcFetcher, err := setupCeloRPC() +// require.NoError(t, err) - blockNumbers := []uint64{ - 19_600_000, - 23_000_000, - 27_000_000, - } - ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) - defer cancel() +// blockNumbers := []uint64{ +// 19_600_000, +// 23_000_000, +// 27_000_000, +// } +// ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) +// defer cancel() - blocks, err := rpcFetcher.GetBlocks(ctx, blockNumbers) - require.NoError(t, err) - t.Logf("blocks %+v\n", blocks) -} +// blocks, err := rpcFetcher.GetBlocks(ctx, blockNumbers) +// require.NoError(t, err) +// t.Logf("blocks %+v\n", blocks) +// } -func TestRPC_GetBlock(t *testing.T) { - rpcFetcher, err := setupCeloRPC() - require.NoError(t, err) +// func TestRPC_GetBlock(t *testing.T) { +// rpcFetcher, err := setupCeloRPC() +// require.NoError(t, err) - var blockNumber uint64 = 19_900_000 - ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) - defer cancel() +// var blockNumber uint64 = 19_900_000 +// ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) +// defer cancel() - block, err := rpcFetcher.GetBlock(ctx, blockNumber) - require.NoError(t, err) - t.Logf("block %+v\n", block) -} +// block, err := rpcFetcher.GetBlock(ctx, blockNumber) +// require.NoError(t, err) +// t.Logf("block %+v\n", block) +// } -func TestRPC_GetLatestBlock(t *testing.T) { - rpcFetcher, err := setupCeloRPC() - require.NoError(t, err) +// func TestRPC_GetLatestBlock(t *testing.T) { +// rpcFetcher, err := setupCeloRPC() +// require.NoError(t, err) - ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) - defer cancel() +// ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) +// defer cancel() - block, err := rpcFetcher.GetLatestBlock(ctx) - require.NoError(t, err) - t.Logf("block %+v\n", block) -} +// block, err := rpcFetcher.GetLatestBlock(ctx) +// require.NoError(t, err) +// t.Logf("block %+v\n", block) +// } -func TestRPC_GetTransaction(t *testing.T) { - rpcFetcher, err := setupCeloRPC() - require.NoError(t, err) +// func TestRPC_GetTransaction(t *testing.T) { +// rpcFetcher, err := setupCeloRPC() +// require.NoError(t, err) - var blockNumber uint64 = 19_900_000 - ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) - defer cancel() +// var blockNumber uint64 = 19_900_000 +// ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) +// defer cancel() - block, err := rpcFetcher.GetBlock(ctx, blockNumber) - require.NoError(t, err) - require.NotNil(t, block) +// block, err := rpcFetcher.GetBlock(ctx, blockNumber) +// require.NoError(t, err) +// require.NotNil(t, block) - transaction, err := rpcFetcher.GetTransaction(ctx, block.Transactions()[0].Hash()) - require.NoError(t, err) - t.Logf("transaction %+v\n", transaction) -} +// transaction, err := rpcFetcher.GetTransaction(ctx, block.Transactions()[0].Hash()) +// require.NoError(t, err) +// t.Logf("transaction %+v\n", transaction) +// } -func TestRPC_GetReceipts(t *testing.T) { - rpcFetcher, err := setupCeloRPC() - require.NoError(t, err) +// func TestRPC_GetReceipts(t *testing.T) { +// rpcFetcher, err := setupCeloRPC() +// require.NoError(t, err) - var blockNumber uint64 = 19_900_000 - ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) - defer cancel() +// var blockNumber uint64 = 19_900_000 +// ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) +// defer cancel() - block, err := rpcFetcher.GetBlock(ctx, blockNumber) - require.NoError(t, err) - require.NotNil(t, block) +// block, err := rpcFetcher.GetBlock(ctx, blockNumber) +// require.NoError(t, err) +// require.NotNil(t, block) - receipts, err := rpcFetcher.GetReceipts(ctx, block.Number()) - require.NoError(t, err) - t.Logf("receipts %+v\n", receipts) -} +// receipts, err := rpcFetcher.GetReceipts(ctx, block.Number()) +// require.NoError(t, err) +// t.Logf("receipts %+v\n", receipts) +// } diff --git a/internal/chain/chain.go b/internal/chain/chain.go index 3e8b4da..e7d673b 100644 --- a/internal/chain/chain.go +++ b/internal/chain/chain.go @@ -4,17 +4,17 @@ import ( "context" "math/big" - "github.com/celo-org/celo-blockchain/common" - "github.com/celo-org/celo-blockchain/core/types" - "github.com/grassrootseconomics/celoutils/v3" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/grassrootseconomics/ethutils" ) type Chain interface { - GetBlocks(context.Context, []uint64) ([]types.Block, error) + GetBlocks(context.Context, []uint64) ([]*types.Block, error) GetBlock(context.Context, uint64) (*types.Block, error) GetLatestBlock(context.Context) (uint64, error) GetTransaction(context.Context, common.Hash) (*types.Transaction, error) GetReceipts(context.Context, *big.Int) (types.Receipts, error) // Expose provider until we eject from celoutils - Provider() *celoutils.Provider + Provider() *ethutils.Provider } diff --git a/internal/chain/eth_rpc.go b/internal/chain/eth_rpc.go index cad1d48..3537e10 100644 --- a/internal/chain/eth_rpc.go +++ b/internal/chain/eth_rpc.go @@ -1,3 +1,118 @@ package chain -// TBA +import ( + "context" + "math/big" + "net/http" + "time" + + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/rpc" + "github.com/grassrootseconomics/ethutils" + "github.com/lmittmann/w3" + "github.com/lmittmann/w3/module/eth" + "github.com/lmittmann/w3/w3types" +) + +type ( + EthRPCOpts struct { + RPCEndpoint string + ChainID int64 + } + + EthRPC struct { + provider *ethutils.Provider + } +) + +func NewRPCFetcher(o EthRPCOpts) (Chain, error) { + customRPCClient, err := lowTimeoutRPCClient(o.RPCEndpoint) + if err != nil { + return nil, err + } + + chainProvider := ethutils.NewProvider( + o.RPCEndpoint, + o.ChainID, + ethutils.WithClient(customRPCClient), + ) + + return &EthRPC{ + provider: chainProvider, + }, nil +} + +func lowTimeoutRPCClient(rpcEndpoint string) (*w3.Client, error) { + httpClient := &http.Client{ + Timeout: 10 * time.Second, + } + + rpcClient, err := rpc.DialOptions(context.Background(), rpcEndpoint, rpc.WithHTTPClient(httpClient)) + if err != nil { + return nil, err + } + + return w3.NewClient(rpcClient), nil +} + +func (c *EthRPC) GetBlocks(ctx context.Context, blockNumbers []uint64) ([]*types.Block, error) { + blocksCount := len(blockNumbers) + calls := make([]w3types.RPCCaller, blocksCount) + blocks := make([]*types.Block, blocksCount) + + for i, v := range blockNumbers { + calls[i] = eth.BlockByNumber(new(big.Int).SetUint64(v)).Returns(&blocks[i]) + } + + if err := c.provider.Client.CallCtx(ctx, calls...); err != nil { + return nil, err + } + + return blocks, nil +} + +func (c *EthRPC) GetBlock(ctx context.Context, blockNumber uint64) (*types.Block, error) { + var block *types.Block + blockCall := eth.BlockByNumber(new(big.Int).SetUint64(blockNumber)).Returns(&block) + + if err := c.provider.Client.CallCtx(ctx, blockCall); err != nil { + return nil, err + } + + return block, nil +} + +func (c *EthRPC) GetLatestBlock(ctx context.Context) (uint64, error) { + var latestBlock *big.Int + latestBlockCall := eth.BlockNumber().Returns(&latestBlock) + + if err := c.provider.Client.CallCtx(ctx, latestBlockCall); err != nil { + return 0, err + } + + return latestBlock.Uint64(), nil +} + +func (c *EthRPC) GetTransaction(ctx context.Context, txHash common.Hash) (*types.Transaction, error) { + var transaction *types.Transaction + if err := c.provider.Client.CallCtx(ctx, eth.Tx(txHash).Returns(&transaction)); err != nil { + return nil, err + } + + return transaction, nil +} + +func (c *EthRPC) GetReceipts(ctx context.Context, blockNumber *big.Int) (types.Receipts, error) { + var receipts types.Receipts + + if err := c.provider.Client.CallCtx(ctx, eth.BlockReceipts(blockNumber).Returns(&receipts)); err != nil { + return nil, err + } + + return receipts, nil +} + +func (c *EthRPC) Provider() *ethutils.Provider { + return c.provider +} diff --git a/internal/chain/eth_rpc_e2e_test.go b/internal/chain/eth_rpc_e2e_test.go new file mode 100644 index 0000000..542148d --- /dev/null +++ b/internal/chain/eth_rpc_e2e_test.go @@ -0,0 +1,98 @@ +package chain + +import ( + "context" + "testing" + "time" + + "github.com/stretchr/testify/require" +) + +const ( + testRPCEndpoint = "https://alfajores-forno.celo-testnet.org" + testChainID = 44787 +) + +func setupEthRPC() (Chain, error) { + opts := EthRPCOpts{ + RPCEndpoint: testRPCEndpoint, + ChainID: testChainID, + } + return NewRPCFetcher(opts) +} + +func TestRPC_GetBlocks(t *testing.T) { + rpcFetcher, err := setupEthRPC() + require.NoError(t, err) + + blockNumbers := []uint64{ + 19_600_000, + 23_000_000, + 26_385_000, + } + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + blocks, err := rpcFetcher.GetBlocks(ctx, blockNumbers) + require.NoError(t, err) + t.Logf("blocks %+v\n", blocks) +} + +func TestRPC_GetBlock(t *testing.T) { + rpcFetcher, err := setupEthRPC() + require.NoError(t, err) + + var blockNumber uint64 = 26_386_000 + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + block, err := rpcFetcher.GetBlock(ctx, blockNumber) + require.NoError(t, err) + t.Logf("block %+v\n", block) +} + +func TestRPC_GetLatestBlock(t *testing.T) { + rpcFetcher, err := setupEthRPC() + require.NoError(t, err) + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + block, err := rpcFetcher.GetLatestBlock(ctx) + require.NoError(t, err) + t.Logf("block %+v\n", block) +} + +func TestRPC_GetTransaction(t *testing.T) { + rpcFetcher, err := setupEthRPC() + require.NoError(t, err) + + var blockNumber uint64 = 26_387_000 + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + block, err := rpcFetcher.GetBlock(ctx, blockNumber) + require.NoError(t, err) + require.NotNil(t, block) + + transaction, err := rpcFetcher.GetTransaction(ctx, block.Transactions()[0].Hash()) + require.NoError(t, err) + t.Logf("transaction %+v\n", transaction) +} + +func TestRPC_GetReceipts(t *testing.T) { + rpcFetcher, err := setupEthRPC() + require.NoError(t, err) + + var blockNumber uint64 = 26_388_000 + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + + block, err := rpcFetcher.GetBlock(ctx, blockNumber) + require.NoError(t, err) + require.NotNil(t, block) + + receipts, err := rpcFetcher.GetReceipts(ctx, block.Number()) + require.NoError(t, err) + t.Logf("receipts %+v\n", receipts) +} diff --git a/internal/handler/faucet_give.go b/internal/handler/faucet_give.go index 3b61dd5..a7401f8 100644 --- a/internal/handler/faucet_give.go +++ b/internal/handler/faucet_give.go @@ -4,11 +4,11 @@ import ( "context" "math/big" - "github.com/celo-org/celo-blockchain/common" - "github.com/grassrootseconomics/celo-tracker/pkg/event" - "github.com/grassrootseconomics/celo-tracker/pkg/router" - "github.com/grassrootseconomics/celoutils/v3" - "github.com/grassrootseconomics/w3-celo" + "github.com/ethereum/go-ethereum/common" + "github.com/grassrootseconomics/eth-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/router" + "github.com/grassrootseconomics/ethutils" + "github.com/lmittmann/w3" ) const faucetGiveEventName = "FAUCET_GIVE" @@ -71,15 +71,15 @@ func HandleFaucetGiveInputData() router.InputDataHandlerFunc { faucetGiveEvent.Payload = map[string]any{ "recipient": to.Hex(), - "token": celoutils.ZeroAddress, + "token": ethutils.ZeroAddress, "amount": "0", } return c(ctx, faucetGiveEvent) case "de82efb4": faucetGiveEvent.Payload = map[string]any{ - "recipient": celoutils.ZeroAddress, - "token": celoutils.ZeroAddress, + "recipient": ethutils.ZeroAddress, + "token": ethutils.ZeroAddress, "amount": "0", } diff --git a/internal/handler/handler.go b/internal/handler/handler.go index 5376cd0..3a2c506 100644 --- a/internal/handler/handler.go +++ b/internal/handler/handler.go @@ -1,6 +1,6 @@ package handler -import "github.com/grassrootseconomics/celo-tracker/internal/cache" +import "github.com/grassrootseconomics/eth-tracker/internal/cache" type HandlerContainer struct { cache cache.Cache diff --git a/internal/handler/index_add.go b/internal/handler/index_add.go index decbe9d..dea143e 100644 --- a/internal/handler/index_add.go +++ b/internal/handler/index_add.go @@ -3,10 +3,10 @@ package handler import ( "context" - "github.com/celo-org/celo-blockchain/common" - "github.com/grassrootseconomics/celo-tracker/pkg/event" - "github.com/grassrootseconomics/celo-tracker/pkg/router" - "github.com/grassrootseconomics/w3-celo" + "github.com/ethereum/go-ethereum/common" + "github.com/grassrootseconomics/eth-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/router" + "github.com/lmittmann/w3" ) const indexAddEventName = "INDEX_ADD" diff --git a/internal/handler/index_remove.go b/internal/handler/index_remove.go index d284551..749289b 100644 --- a/internal/handler/index_remove.go +++ b/internal/handler/index_remove.go @@ -3,10 +3,10 @@ package handler import ( "context" - "github.com/celo-org/celo-blockchain/common" - "github.com/grassrootseconomics/celo-tracker/pkg/event" - "github.com/grassrootseconomics/celo-tracker/pkg/router" - "github.com/grassrootseconomics/w3-celo" + "github.com/ethereum/go-ethereum/common" + "github.com/grassrootseconomics/eth-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/router" + "github.com/lmittmann/w3" ) const indexRemoveEventName = "INDEX_REMOVE" diff --git a/internal/handler/ownership.go b/internal/handler/ownership.go index 8f60cdf..5ac6b50 100644 --- a/internal/handler/ownership.go +++ b/internal/handler/ownership.go @@ -3,10 +3,10 @@ package handler import ( "context" - "github.com/celo-org/celo-blockchain/common" - "github.com/grassrootseconomics/celo-tracker/pkg/event" - "github.com/grassrootseconomics/celo-tracker/pkg/router" - "github.com/grassrootseconomics/w3-celo" + "github.com/ethereum/go-ethereum/common" + "github.com/grassrootseconomics/eth-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/router" + "github.com/lmittmann/w3" ) const ownershipEventName = "OWNERSHIP_TRANSFERRED" diff --git a/internal/handler/pool_deposit.go b/internal/handler/pool_deposit.go index a61e32a..2d192da 100644 --- a/internal/handler/pool_deposit.go +++ b/internal/handler/pool_deposit.go @@ -4,10 +4,10 @@ import ( "context" "math/big" - "github.com/celo-org/celo-blockchain/common" - "github.com/grassrootseconomics/celo-tracker/pkg/event" - "github.com/grassrootseconomics/celo-tracker/pkg/router" - "github.com/grassrootseconomics/w3-celo" + "github.com/ethereum/go-ethereum/common" + "github.com/grassrootseconomics/eth-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/router" + "github.com/lmittmann/w3" ) const poolDepositEventName = "POOL_DEPOSIT" diff --git a/internal/handler/pool_swap.go b/internal/handler/pool_swap.go index ddbfefe..9a55527 100644 --- a/internal/handler/pool_swap.go +++ b/internal/handler/pool_swap.go @@ -4,10 +4,10 @@ import ( "context" "math/big" - "github.com/celo-org/celo-blockchain/common" - "github.com/grassrootseconomics/celo-tracker/pkg/event" - "github.com/grassrootseconomics/celo-tracker/pkg/router" - "github.com/grassrootseconomics/w3-celo" + "github.com/ethereum/go-ethereum/common" + "github.com/grassrootseconomics/eth-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/router" + "github.com/lmittmann/w3" ) const poolSwapEventName = "POOL_SWAP" diff --git a/internal/handler/quoter_price.go b/internal/handler/quoter_price.go index e4b39db..fcfa5a1 100644 --- a/internal/handler/quoter_price.go +++ b/internal/handler/quoter_price.go @@ -4,10 +4,10 @@ import ( "context" "math/big" - "github.com/celo-org/celo-blockchain/common" - "github.com/grassrootseconomics/celo-tracker/pkg/event" - "github.com/grassrootseconomics/celo-tracker/pkg/router" - "github.com/grassrootseconomics/w3-celo" + "github.com/ethereum/go-ethereum/common" + "github.com/grassrootseconomics/eth-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/router" + "github.com/lmittmann/w3" ) const quoterPriceEventName = "QUOTER_PRICE_INDEX_UPDATED" diff --git a/internal/handler/seal.go b/internal/handler/seal.go index 5315111..abc231f 100644 --- a/internal/handler/seal.go +++ b/internal/handler/seal.go @@ -4,9 +4,9 @@ import ( "context" "math/big" - "github.com/grassrootseconomics/celo-tracker/pkg/event" - "github.com/grassrootseconomics/celo-tracker/pkg/router" - "github.com/grassrootseconomics/w3-celo" + "github.com/grassrootseconomics/eth-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/router" + "github.com/lmittmann/w3" ) const sealEventName = "SEAL_STATE_CHANGE" diff --git a/internal/handler/token_burn.go b/internal/handler/token_burn.go index 89da620..dc5956f 100644 --- a/internal/handler/token_burn.go +++ b/internal/handler/token_burn.go @@ -4,10 +4,10 @@ import ( "context" "math/big" - "github.com/celo-org/celo-blockchain/common" - "github.com/grassrootseconomics/celo-tracker/pkg/event" - "github.com/grassrootseconomics/celo-tracker/pkg/router" - "github.com/grassrootseconomics/w3-celo" + "github.com/ethereum/go-ethereum/common" + "github.com/grassrootseconomics/eth-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/router" + "github.com/lmittmann/w3" ) const burnEventName = "TOKEN_BURN" diff --git a/internal/handler/token_mint.go b/internal/handler/token_mint.go index 4e9456c..0845379 100644 --- a/internal/handler/token_mint.go +++ b/internal/handler/token_mint.go @@ -4,10 +4,10 @@ import ( "context" "math/big" - "github.com/celo-org/celo-blockchain/common" - "github.com/grassrootseconomics/celo-tracker/pkg/event" - "github.com/grassrootseconomics/celo-tracker/pkg/router" - "github.com/grassrootseconomics/w3-celo" + "github.com/ethereum/go-ethereum/common" + "github.com/grassrootseconomics/eth-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/router" + "github.com/lmittmann/w3" ) const mintEventName = "TOKEN_MINT" diff --git a/internal/handler/token_transfer.go b/internal/handler/token_transfer.go index 675559d..182e00f 100644 --- a/internal/handler/token_transfer.go +++ b/internal/handler/token_transfer.go @@ -4,14 +4,21 @@ import ( "context" "math/big" - "github.com/celo-org/celo-blockchain/common" - "github.com/grassrootseconomics/celo-tracker/pkg/event" - "github.com/grassrootseconomics/celo-tracker/pkg/router" - "github.com/grassrootseconomics/celoutils/v3" - "github.com/grassrootseconomics/w3-celo" + "github.com/ethereum/go-ethereum/common" + "github.com/grassrootseconomics/eth-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/router" + "github.com/lmittmann/w3" ) -const transferEventName = "TOKEN_TRANSFER" +const ( + transferEventName = "TOKEN_TRANSFER" + + CUSDContractMainnet = "0x765DE816845861e75A25fCA122bb6898B8B1282a" + CKESContractMainnet = "0x456a3D042C0DbD3db53D5489e98dFb038553B0d0" + CEURContractmainnet = "0xD8763CBa276a3738E6DE85b4b3bF5FDed6D6cA73" + USDCContractMainnet = "0xcebA9300f2b948710d2653dD7B07f33A8B32118C" + USDTContractMainnet = "0x617f3112bf5397D0467D315cC709EF968D9ba546" +) var ( tokenTransferEvent = w3.MustNewEvent("Transfer(address indexed _from, address indexed _to, uint256 _value)") @@ -19,10 +26,10 @@ var ( tokenTransferFromSig = w3.MustNewFunc("transferFrom(address, address, uint256)", "bool") stables = map[string]bool{ - celoutils.CUSDContractMainnet: true, - celoutils.CKESContractMainnet: true, - celoutils.USDTContractMainnet: true, - celoutils.USDCContractMainnet: true, + CUSDContractMainnet: true, + CKESContractMainnet: true, + USDTContractMainnet: true, + USDCContractMainnet: true, } ) diff --git a/internal/pool/pool.go b/internal/pool/pool.go index 2cf2ab5..40c889e 100644 --- a/internal/pool/pool.go +++ b/internal/pool/pool.go @@ -6,7 +6,7 @@ import ( "runtime/debug" "github.com/alitto/pond" - "github.com/grassrootseconomics/celo-tracker/internal/processor" + "github.com/grassrootseconomics/eth-tracker/internal/processor" ) type ( diff --git a/internal/processor/processor.go b/internal/processor/processor.go index 181e1c9..14376c8 100644 --- a/internal/processor/processor.go +++ b/internal/processor/processor.go @@ -6,12 +6,12 @@ import ( "fmt" "log/slog" - "github.com/celo-org/celo-blockchain/common" - "github.com/celo-org/celo-blockchain/core/types" - "github.com/grassrootseconomics/celo-tracker/db" - "github.com/grassrootseconomics/celo-tracker/internal/cache" - "github.com/grassrootseconomics/celo-tracker/internal/chain" - "github.com/grassrootseconomics/celo-tracker/pkg/router" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/grassrootseconomics/eth-tracker/db" + "github.com/grassrootseconomics/eth-tracker/internal/cache" + "github.com/grassrootseconomics/eth-tracker/internal/chain" + "github.com/grassrootseconomics/eth-tracker/pkg/router" ) type ( diff --git a/internal/pub/jetstream.go b/internal/pub/jetstream.go index faf8f98..e13fc15 100644 --- a/internal/pub/jetstream.go +++ b/internal/pub/jetstream.go @@ -7,7 +7,7 @@ import ( "log/slog" "time" - "github.com/grassrootseconomics/celo-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/event" "github.com/nats-io/nats.go" ) diff --git a/internal/pub/pub.go b/internal/pub/pub.go index ba57427..5de645f 100644 --- a/internal/pub/pub.go +++ b/internal/pub/pub.go @@ -3,7 +3,7 @@ package pub import ( "context" - "github.com/grassrootseconomics/celo-tracker/pkg/event" + "github.com/grassrootseconomics/eth-tracker/pkg/event" ) type Pub interface { diff --git a/internal/stats/stats.go b/internal/stats/stats.go index 7625cf3..4519e71 100644 --- a/internal/stats/stats.go +++ b/internal/stats/stats.go @@ -6,8 +6,8 @@ import ( "sync/atomic" "time" - "github.com/grassrootseconomics/celo-tracker/internal/cache" - "github.com/grassrootseconomics/celo-tracker/internal/pool" + "github.com/grassrootseconomics/eth-tracker/internal/cache" + "github.com/grassrootseconomics/eth-tracker/internal/pool" ) type ( diff --git a/internal/syncer/realtime.go b/internal/syncer/realtime.go index f7b1be6..2544413 100644 --- a/internal/syncer/realtime.go +++ b/internal/syncer/realtime.go @@ -4,9 +4,9 @@ import ( "context" "time" - "github.com/celo-org/celo-blockchain" - "github.com/celo-org/celo-blockchain/core/types" - "github.com/celo-org/celo-blockchain/event" + "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" ) type BlockQueueFn func(uint64) error @@ -23,7 +23,7 @@ func (s *Syncer) Start() { s.realtimeSub = event.ResubscribeErr(resubscribeInterval, s.resubscribeFn()) } -func (s *Syncer) receiveRealtimeBlocks(ctx context.Context, fn BlockQueueFn) (celo.Subscription, error) { +func (s *Syncer) receiveRealtimeBlocks(ctx context.Context, fn BlockQueueFn) (ethereum.Subscription, error) { newHeadersReceiver := make(chan *types.Header, 1) sub, err := s.ethClient.SubscribeNewHead(ctx, newHeadersReceiver) s.logg.Info("realtime syncer connected to ws endpoint") diff --git a/internal/syncer/syncer.go b/internal/syncer/syncer.go index a5d56f2..4cc79e0 100644 --- a/internal/syncer/syncer.go +++ b/internal/syncer/syncer.go @@ -4,12 +4,12 @@ import ( "context" "log/slog" - "github.com/celo-org/celo-blockchain" - "github.com/celo-org/celo-blockchain/ethclient" - "github.com/grassrootseconomics/celo-tracker/db" - "github.com/grassrootseconomics/celo-tracker/internal/chain" - "github.com/grassrootseconomics/celo-tracker/internal/pool" - "github.com/grassrootseconomics/celo-tracker/internal/stats" + "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/ethclient" + "github.com/grassrootseconomics/eth-tracker/db" + "github.com/grassrootseconomics/eth-tracker/internal/chain" + "github.com/grassrootseconomics/eth-tracker/internal/pool" + "github.com/grassrootseconomics/eth-tracker/internal/stats" ) type ( @@ -27,7 +27,7 @@ type ( db db.DB ethClient *ethclient.Client logg *slog.Logger - realtimeSub celo.Subscription + realtimeSub ethereum.Subscription pool *pool.Pool stats *stats.Stats stopCh chan struct{} diff --git a/pkg/router/router.go b/pkg/router/router.go index 1d7271c..6f5e940 100644 --- a/pkg/router/router.go +++ b/pkg/router/router.go @@ -3,9 +3,9 @@ package router import ( "context" - "github.com/celo-org/celo-blockchain/common" - "github.com/celo-org/celo-blockchain/core/types" - "github.com/grassrootseconomics/celo-tracker/pkg/event" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/grassrootseconomics/eth-tracker/pkg/event" ) type (