mirror of
https://github.com/grassrootseconomics/eth-tracker.git
synced 2026-05-16 10:01:46 +02:00
special: backport old celo geth to latest eth-tracker codebase
This commit is contained in:
36
internal/cache/bootstrap.go
vendored
36
internal/cache/bootstrap.go
vendored
@@ -6,11 +6,11 @@ import (
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/celoutils/v3"
|
||||
"github.com/grassrootseconomics/eth-tracker/internal/chain"
|
||||
"github.com/grassrootseconomics/ethutils"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/lmittmann/w3/module/eth"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
"github.com/grassrootseconomics/w3-celo/module/eth"
|
||||
)
|
||||
|
||||
func bootstrapCache(
|
||||
@@ -30,14 +30,14 @@ func bootstrapCache(
|
||||
defer cancel()
|
||||
|
||||
for _, registry := range registries {
|
||||
registryMap, err := chain.Provider().RegistryMap(ctx, ethutils.HexToAddress(registry))
|
||||
registryMap, err := chain.Provider().RegistryMap(ctx, celoutils.HexToAddress(registry))
|
||||
if err != nil {
|
||||
lo.Error("could not fetch registry", "registry", registry, "error", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
for k, v := range registryMap {
|
||||
if v != ethutils.ZeroAddress {
|
||||
if v != celoutils.ZeroAddress {
|
||||
if err := cache.Add(ctx, v.Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -46,7 +46,7 @@ func bootstrapCache(
|
||||
}
|
||||
}
|
||||
|
||||
if accountIndex := registryMap[ethutils.AccountIndex]; accountIndex != ethutils.ZeroAddress {
|
||||
if accountIndex := registryMap[celoutils.AccountIndex]; accountIndex != celoutils.ZeroAddress {
|
||||
if err := cache.Add(ctx, accountIndex.Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -67,7 +67,7 @@ func bootstrapCache(
|
||||
}
|
||||
|
||||
for _, address := range accountIndexBatch {
|
||||
if address != ethutils.ZeroAddress {
|
||||
if address != celoutils.ZeroAddress {
|
||||
if err := cache.Add(ctx, address.Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -78,7 +78,7 @@ func bootstrapCache(
|
||||
}
|
||||
}
|
||||
|
||||
if tokenIndex := registryMap[ethutils.TokenIndex]; tokenIndex != ethutils.ZeroAddress {
|
||||
if tokenIndex := registryMap[celoutils.TokenIndex]; tokenIndex != celoutils.ZeroAddress {
|
||||
if err := cache.Add(ctx, tokenIndex.Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -99,7 +99,7 @@ func bootstrapCache(
|
||||
}
|
||||
|
||||
for _, address := range tokenIndexBatch {
|
||||
if address != ethutils.ZeroAddress {
|
||||
if address != celoutils.ZeroAddress {
|
||||
if err := cache.Add(ctx, address.Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -110,7 +110,7 @@ func bootstrapCache(
|
||||
}
|
||||
}
|
||||
|
||||
if poolIndex := registryMap[ethutils.PoolIndex]; poolIndex != ethutils.ZeroAddress {
|
||||
if poolIndex := registryMap[celoutils.PoolIndex]; poolIndex != celoutils.ZeroAddress {
|
||||
if err := cache.Add(ctx, poolIndex.Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -130,7 +130,7 @@ func bootstrapCache(
|
||||
break
|
||||
}
|
||||
for _, address := range poolIndexBatch {
|
||||
if address != ethutils.ZeroAddress {
|
||||
if address != celoutils.ZeroAddress {
|
||||
if err := cache.Add(ctx, address.Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -144,14 +144,14 @@ func bootstrapCache(
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if priceQuoter != ethutils.ZeroAddress {
|
||||
if priceQuoter != celoutils.ZeroAddress {
|
||||
if err := cache.Add(ctx, priceQuoter.Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
lo.Debug("cached pool index quoter", "pool", poolIndex.Hex(), "address", priceQuoter.Hex())
|
||||
}
|
||||
if poolTokenIndex != ethutils.ZeroAddress {
|
||||
if poolTokenIndex != celoutils.ZeroAddress {
|
||||
if err := cache.Add(ctx, poolTokenIndex.Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -171,7 +171,7 @@ func bootstrapCache(
|
||||
break
|
||||
}
|
||||
for _, address := range poolTokenIndexBatch {
|
||||
if address != ethutils.ZeroAddress {
|
||||
if address != celoutils.ZeroAddress {
|
||||
if err := cache.Add(ctx, address.Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -188,16 +188,16 @@ func bootstrapCache(
|
||||
}
|
||||
|
||||
for _, address := range watchlist {
|
||||
if err := cache.Add(ctx, ethutils.HexToAddress(address).Hex()); err != nil {
|
||||
if err := cache.Add(ctx, celoutils.HexToAddress(address).Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
for _, address := range blacklist {
|
||||
if err := cache.Remove(ctx, ethutils.HexToAddress(address).Hex()); err != nil {
|
||||
if err := cache.Remove(ctx, celoutils.HexToAddress(address).Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if err := cache.Remove(ctx, ethutils.ZeroAddress.Hex()); err != nil {
|
||||
if err := cache.Remove(ctx, celoutils.ZeroAddress.Hex()); err != nil {
|
||||
return err
|
||||
}
|
||||
cacheSize, err := cache.Size(ctx)
|
||||
|
||||
@@ -1,121 +0,0 @@
|
||||
package chain
|
||||
|
||||
// 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 (
|
||||
// CeloRPCOpts struct {
|
||||
// RPCEndpoint string
|
||||
// ChainID int64
|
||||
// }
|
||||
|
||||
// CeloRPC struct {
|
||||
// provider *ethutils.Provider
|
||||
// }
|
||||
// )
|
||||
|
||||
// func NewRPCFetcher(o CeloRPCOpts) (Chain, error) {
|
||||
// customRPCClient, err := lowTimeoutRPCClient(o.RPCEndpoint)
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
|
||||
// chainProvider := ethutils.NewProvider(
|
||||
// o.RPCEndpoint,
|
||||
// o.ChainID,
|
||||
// ethutils.WithClient(customRPCClient),
|
||||
// )
|
||||
|
||||
// return &CeloRPC{
|
||||
// provider: chainProvider,
|
||||
// }, nil
|
||||
// }
|
||||
|
||||
// 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
|
||||
// }
|
||||
|
||||
// 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)
|
||||
|
||||
// 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 *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
|
||||
// }
|
||||
|
||||
// return &block, nil
|
||||
// }
|
||||
|
||||
// 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
|
||||
// }
|
||||
|
||||
// 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
|
||||
// }
|
||||
|
||||
// return &transaction, nil
|
||||
// }
|
||||
|
||||
// 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
|
||||
// }
|
||||
|
||||
// return receipts, nil
|
||||
// }
|
||||
|
||||
// func (c *CeloRPC) Provider() *ethutils.Provider {
|
||||
// return c.provider
|
||||
// }
|
||||
@@ -1,98 +0,0 @@
|
||||
package chain
|
||||
|
||||
// import (
|
||||
// "context"
|
||||
// "testing"
|
||||
// "time"
|
||||
|
||||
// "github.com/stretchr/testify/require"
|
||||
// )
|
||||
|
||||
// const (
|
||||
// testRPCEndpoint = "https://celo.archive.grassecon.net"
|
||||
// testChainID = 42220
|
||||
// )
|
||||
|
||||
// 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)
|
||||
|
||||
// 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)
|
||||
// }
|
||||
|
||||
// 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()
|
||||
|
||||
// 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)
|
||||
|
||||
// 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 := setupCeloRPC()
|
||||
// require.NoError(t, err)
|
||||
|
||||
// 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)
|
||||
|
||||
// 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)
|
||||
|
||||
// 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)
|
||||
|
||||
// receipts, err := rpcFetcher.GetReceipts(ctx, block.Number())
|
||||
// require.NoError(t, err)
|
||||
// t.Logf("receipts %+v\n", receipts)
|
||||
// }
|
||||
@@ -4,17 +4,17 @@ import (
|
||||
"context"
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
"github.com/grassrootseconomics/ethutils"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/celo-org/celo-blockchain/core/types"
|
||||
"github.com/grassrootseconomics/celoutils/v3"
|
||||
)
|
||||
|
||||
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() *ethutils.Provider
|
||||
Provider() *celoutils.Provider
|
||||
}
|
||||
|
||||
@@ -6,13 +6,13 @@ import (
|
||||
"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"
|
||||
"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"
|
||||
)
|
||||
|
||||
type (
|
||||
@@ -22,7 +22,7 @@ type (
|
||||
}
|
||||
|
||||
EthRPC struct {
|
||||
provider *ethutils.Provider
|
||||
provider *celoutils.Provider
|
||||
}
|
||||
)
|
||||
|
||||
@@ -32,10 +32,10 @@ func NewRPCFetcher(o EthRPCOpts) (Chain, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
chainProvider := ethutils.NewProvider(
|
||||
chainProvider := celoutils.NewProvider(
|
||||
o.RPCEndpoint,
|
||||
o.ChainID,
|
||||
ethutils.WithClient(customRPCClient),
|
||||
celoutils.WithClient(customRPCClient),
|
||||
)
|
||||
|
||||
return &EthRPC{
|
||||
@@ -48,7 +48,10 @@ func lowTimeoutRPCClient(rpcEndpoint string) (*w3.Client, error) {
|
||||
Timeout: 10 * time.Second,
|
||||
}
|
||||
|
||||
rpcClient, err := rpc.DialOptions(context.Background(), rpcEndpoint, rpc.WithHTTPClient(httpClient))
|
||||
rpcClient, err := rpc.DialHTTPWithClient(
|
||||
rpcEndpoint,
|
||||
httpClient,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -56,10 +59,10 @@ func lowTimeoutRPCClient(rpcEndpoint string) (*w3.Client, error) {
|
||||
return w3.NewClient(rpcClient), nil
|
||||
}
|
||||
|
||||
func (c *EthRPC) GetBlocks(ctx context.Context, blockNumbers []uint64) ([]*types.Block, error) {
|
||||
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)
|
||||
blocks := make([]types.Block, blocksCount)
|
||||
|
||||
for i, v := range blockNumbers {
|
||||
calls[i] = eth.BlockByNumber(new(big.Int).SetUint64(v)).Returns(&blocks[i])
|
||||
@@ -73,18 +76,18 @@ func (c *EthRPC) GetBlocks(ctx context.Context, blockNumbers []uint64) ([]*types
|
||||
}
|
||||
|
||||
func (c *EthRPC) GetBlock(ctx context.Context, blockNumber uint64) (*types.Block, error) {
|
||||
var block *types.Block
|
||||
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
|
||||
return &block, nil
|
||||
}
|
||||
|
||||
func (c *EthRPC) GetLatestBlock(ctx context.Context) (uint64, error) {
|
||||
var latestBlock *big.Int
|
||||
var latestBlock big.Int
|
||||
latestBlockCall := eth.BlockNumber().Returns(&latestBlock)
|
||||
|
||||
if err := c.provider.Client.CallCtx(ctx, latestBlockCall); err != nil {
|
||||
@@ -95,12 +98,12 @@ func (c *EthRPC) GetLatestBlock(ctx context.Context) (uint64, error) {
|
||||
}
|
||||
|
||||
func (c *EthRPC) GetTransaction(ctx context.Context, txHash common.Hash) (*types.Transaction, error) {
|
||||
var transaction *types.Transaction
|
||||
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 *EthRPC) GetReceipts(ctx context.Context, blockNumber *big.Int) (types.Receipts, error) {
|
||||
@@ -113,6 +116,6 @@ func (c *EthRPC) GetReceipts(ctx context.Context, blockNumber *big.Int) (types.R
|
||||
return receipts, nil
|
||||
}
|
||||
|
||||
func (c *EthRPC) Provider() *ethutils.Provider {
|
||||
func (c *EthRPC) Provider() *celoutils.Provider {
|
||||
return c.provider
|
||||
}
|
||||
|
||||
@@ -3,10 +3,10 @@ package handler
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const custodialRegistrationEventName = "CUSTODIAL_REGISTRATION"
|
||||
|
||||
@@ -4,11 +4,11 @@ import (
|
||||
"context"
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/celoutils/v3"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/grassrootseconomics/ethutils"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const faucetGiveEventName = "FAUCET_GIVE"
|
||||
@@ -71,15 +71,15 @@ func HandleFaucetGiveInputData() router.InputDataHandlerFunc {
|
||||
|
||||
faucetGiveEvent.Payload = map[string]any{
|
||||
"recipient": to.Hex(),
|
||||
"token": ethutils.ZeroAddress,
|
||||
"token": celoutils.ZeroAddress,
|
||||
"amount": "0",
|
||||
}
|
||||
|
||||
return c(ctx, faucetGiveEvent)
|
||||
case "de82efb4":
|
||||
faucetGiveEvent.Payload = map[string]any{
|
||||
"recipient": ethutils.ZeroAddress,
|
||||
"token": ethutils.ZeroAddress,
|
||||
"recipient": celoutils.ZeroAddress,
|
||||
"token": celoutils.ZeroAddress,
|
||||
"amount": "0",
|
||||
}
|
||||
|
||||
|
||||
@@ -3,10 +3,10 @@ package handler
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const indexAddEventName = "INDEX_ADD"
|
||||
|
||||
@@ -3,10 +3,10 @@ package handler
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const indexRemoveEventName = "INDEX_REMOVE"
|
||||
|
||||
@@ -3,10 +3,10 @@ package handler
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const ownershipEventName = "OWNERSHIP_TRANSFERRED"
|
||||
|
||||
@@ -4,10 +4,10 @@ import (
|
||||
"context"
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const poolDepositEventName = "POOL_DEPOSIT"
|
||||
|
||||
@@ -4,10 +4,10 @@ import (
|
||||
"context"
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const poolSwapEventName = "POOL_SWAP"
|
||||
|
||||
@@ -4,10 +4,10 @@ import (
|
||||
"context"
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const quoterPriceEventName = "QUOTER_PRICE_INDEX_UPDATED"
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const sealEventName = "SEAL_STATE_CHANGE"
|
||||
|
||||
@@ -4,10 +4,10 @@ import (
|
||||
"context"
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const approveEventName = "TOKEN_APPROVE"
|
||||
|
||||
@@ -4,10 +4,10 @@ import (
|
||||
"context"
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const burnEventName = "TOKEN_BURN"
|
||||
|
||||
@@ -4,10 +4,10 @@ import (
|
||||
"context"
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const mintEventName = "TOKEN_MINT"
|
||||
|
||||
@@ -4,10 +4,10 @@ import (
|
||||
"context"
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
||||
"github.com/grassrootseconomics/eth-tracker/pkg/router"
|
||||
"github.com/lmittmann/w3"
|
||||
"github.com/grassrootseconomics/w3-celo"
|
||||
)
|
||||
|
||||
const transferEventName = "TOKEN_TRANSFER"
|
||||
|
||||
@@ -6,8 +6,8 @@ import (
|
||||
"fmt"
|
||||
"log/slog"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
"github.com/celo-org/celo-blockchain/common"
|
||||
"github.com/celo-org/celo-blockchain/core/types"
|
||||
"github.com/grassrootseconomics/eth-tracker/db"
|
||||
"github.com/grassrootseconomics/eth-tracker/internal/cache"
|
||||
"github.com/grassrootseconomics/eth-tracker/internal/chain"
|
||||
|
||||
@@ -4,9 +4,9 @@ import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/ethereum/go-ethereum"
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
"github.com/ethereum/go-ethereum/event"
|
||||
"github.com/celo-org/celo-blockchain"
|
||||
"github.com/celo-org/celo-blockchain/core/types"
|
||||
"github.com/celo-org/celo-blockchain/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) (ethereum.Subscription, error) {
|
||||
func (s *Syncer) receiveRealtimeBlocks(ctx context.Context, fn BlockQueueFn) (celo.Subscription, error) {
|
||||
newHeadersReceiver := make(chan *types.Header, 1)
|
||||
sub, err := s.ethClient.SubscribeNewHead(ctx, newHeadersReceiver)
|
||||
s.logg.Info("realtime syncer connected to ws endpoint")
|
||||
|
||||
@@ -4,8 +4,8 @@ import (
|
||||
"context"
|
||||
"log/slog"
|
||||
|
||||
"github.com/ethereum/go-ethereum"
|
||||
"github.com/ethereum/go-ethereum/ethclient"
|
||||
"github.com/celo-org/celo-blockchain"
|
||||
"github.com/celo-org/celo-blockchain/ethclient"
|
||||
"github.com/grassrootseconomics/eth-tracker/db"
|
||||
"github.com/grassrootseconomics/eth-tracker/internal/chain"
|
||||
"github.com/grassrootseconomics/eth-tracker/internal/pool"
|
||||
@@ -27,7 +27,7 @@ type (
|
||||
db db.DB
|
||||
ethClient *ethclient.Client
|
||||
logg *slog.Logger
|
||||
realtimeSub ethereum.Subscription
|
||||
realtimeSub celo.Subscription
|
||||
pool *pool.Pool
|
||||
stats *stats.Stats
|
||||
stopCh chan struct{}
|
||||
|
||||
Reference in New Issue
Block a user