Commit 5f9dfeba authored by Hamdi Allam's avatar Hamdi Allam

utilize opio and op-service/log for log cli flags

parent d312b494
...@@ -23,6 +23,7 @@ require ( ...@@ -23,6 +23,7 @@ require (
github.com/ipfs/go-datastore v0.6.0 github.com/ipfs/go-datastore v0.6.0
github.com/ipfs/go-ds-leveldb v0.5.0 github.com/ipfs/go-ds-leveldb v0.5.0
github.com/jackc/pgtype v1.14.0 github.com/jackc/pgtype v1.14.0
github.com/jackc/pgx/v5 v5.3.1
github.com/lib/pq v1.10.9 github.com/lib/pq v1.10.9
github.com/libp2p/go-libp2p v0.25.1 github.com/libp2p/go-libp2p v0.25.1
github.com/libp2p/go-libp2p-pubsub v0.9.3 github.com/libp2p/go-libp2p-pubsub v0.9.3
...@@ -105,7 +106,6 @@ require ( ...@@ -105,7 +106,6 @@ require (
github.com/jackc/pgio v1.0.0 // indirect github.com/jackc/pgio v1.0.0 // indirect
github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect
github.com/jackc/pgx/v5 v5.3.1 // indirect
github.com/jackpal/go-nat-pmp v1.0.2 // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect
github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect
github.com/jbenet/goprocess v0.1.4 // indirect github.com/jbenet/goprocess v0.1.4 // indirect
......
...@@ -3,13 +3,12 @@ package cli ...@@ -3,13 +3,12 @@ package cli
import ( import (
"context" "context"
"fmt" "fmt"
"os"
"os/signal"
"github.com/ethereum-optimism/optimism/indexer" "github.com/ethereum-optimism/optimism/indexer"
"github.com/ethereum-optimism/optimism/indexer/config" "github.com/ethereum-optimism/optimism/indexer/config"
"github.com/ethereum-optimism/optimism/op-service/log"
"github.com/ethereum-optimism/optimism/op-service/opio"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/params"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
...@@ -31,19 +30,16 @@ func runIndexer(ctx *cli.Context) error { ...@@ -31,19 +30,16 @@ func runIndexer(ctx *cli.Context) error {
} }
// setup logger // setup logger
cfg.Logger = log.New() cfg.Logger = log.NewLogger(log.ReadCLIConfig(ctx))
cfg.Logger.SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StreamHandler(os.Stdout, log.TerminalFormat(true))))
indexer, err := indexer.NewIndexer(cfg) indexer, err := indexer.NewIndexer(cfg)
if err != nil { if err != nil {
return err return err
} }
signalChannel := make(chan os.Signal, 1)
indexerCtx, indexerCancel := context.WithCancel(context.Background()) indexerCtx, indexerCancel := context.WithCancel(context.Background())
signal.Notify(signalChannel, os.Interrupt)
go func() { go func() {
<-signalChannel opio.BlockOnInterrupts()
indexerCancel() indexerCancel()
}() }()
...@@ -57,7 +53,7 @@ func runApi(ctx *cli.Context) error { ...@@ -57,7 +53,7 @@ func runApi(ctx *cli.Context) error {
fmt.Println(conf) fmt.Println(conf)
if err != nil { if err != nil {
log.Crit("Failed to load config", "message", err) panic(err)
} }
// finish me // finish me
...@@ -90,17 +86,7 @@ func (c *Cli) Run(args []string) error { ...@@ -90,17 +86,7 @@ func (c *Cli) Run(args []string) error {
} }
func NewCli(GitVersion string, GitCommit string, GitDate string) *Cli { func NewCli(GitVersion string, GitCommit string, GitDate string) *Cli {
log.Root().SetHandler( flags := append([]cli.Flag{ConfigFlag}, log.CLIFlags("INDEXER")...)
log.LvlFilterHandler(
log.LvlInfo,
log.StreamHandler(os.Stdout, log.TerminalFormat(true)),
),
)
flags := []cli.Flag{
ConfigFlag,
}
app := &cli.App{ app := &cli.App{
Version: fmt.Sprintf("%s-%s", GitVersion, params.VersionWithCommit(GitCommit, GitDate)), Version: fmt.Sprintf("%s-%s", GitVersion, params.VersionWithCommit(GitCommit, GitDate)),
Description: "An indexer of all optimism events with a serving api layer", Description: "An indexer of all optimism events with a serving api layer",
......
...@@ -8,10 +8,10 @@ import ( ...@@ -8,10 +8,10 @@ import (
"github.com/ethereum-optimism/optimism/indexer/node" "github.com/ethereum-optimism/optimism/indexer/node"
"github.com/ethereum-optimism/optimism/indexer/processor" "github.com/ethereum-optimism/optimism/indexer/processor"
"github.com/ethereum-optimism/optimism/op-service/client/utils"
"github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum-optimism/optimism/op-bindings/bindings"
"github.com/ethereum-optimism/optimism/op-bindings/predeploys" "github.com/ethereum-optimism/optimism/op-bindings/predeploys"
e2eutils "github.com/ethereum-optimism/optimism/op-e2e/e2eutils"
"github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/accounts/abi/bind"
...@@ -33,7 +33,7 @@ func TestE2EBlockHeaders(t *testing.T) { ...@@ -33,7 +33,7 @@ func TestE2EBlockHeaders(t *testing.T) {
defer cancel() defer cancel()
// wait for at least 10 L2 blocks to be created & posted on L1 // wait for at least 10 L2 blocks to be created & posted on L1
require.NoError(t, e2eutils.WaitFor(setupCtx, time.Second, func() (bool, error) { require.NoError(t, utils.WaitFor(setupCtx, time.Second, func() (bool, error) {
l2Height, err := l2OutputOracle.LatestBlockNumber(&bind.CallOpts{Context: setupCtx}) l2Height, err := l2OutputOracle.LatestBlockNumber(&bind.CallOpts{Context: setupCtx})
return l2Height != nil && l2Height.Uint64() >= 9, err return l2Height != nil && l2Height.Uint64() >= 9, err
})) }))
...@@ -41,7 +41,7 @@ func TestE2EBlockHeaders(t *testing.T) { ...@@ -41,7 +41,7 @@ func TestE2EBlockHeaders(t *testing.T) {
// ensure the processors are caught up to this state // ensure the processors are caught up to this state
l1Height, err := l1Client.BlockNumber(setupCtx) l1Height, err := l1Client.BlockNumber(setupCtx)
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, e2eutils.WaitFor(setupCtx, time.Second, func() (bool, error) { require.NoError(t, utils.WaitFor(setupCtx, time.Second, func() (bool, error) {
l1Header := testSuite.Indexer.L1Processor.LatestProcessedHeader() l1Header := testSuite.Indexer.L1Processor.LatestProcessedHeader()
l2Header := testSuite.Indexer.L2Processor.LatestProcessedHeader() l2Header := testSuite.Indexer.L2Processor.LatestProcessedHeader()
return (l1Header != nil && l1Header.Number.Uint64() >= l1Height) && (l2Header != nil && l2Header.Number.Uint64() >= 9), nil return (l1Header != nil && l1Header.Number.Uint64() >= l1Height) && (l2Header != nil && l2Header.Number.Uint64() >= 9), nil
......
...@@ -7,11 +7,11 @@ import ( ...@@ -7,11 +7,11 @@ import (
"time" "time"
"github.com/ethereum-optimism/optimism/indexer/processor" "github.com/ethereum-optimism/optimism/indexer/processor"
"github.com/ethereum-optimism/optimism/op-service/client/utils"
"github.com/ethereum-optimism/optimism/op-bindings/bindings" "github.com/ethereum-optimism/optimism/op-bindings/bindings"
"github.com/ethereum-optimism/optimism/op-bindings/predeploys" "github.com/ethereum-optimism/optimism/op-bindings/predeploys"
op_e2e "github.com/ethereum-optimism/optimism/op-e2e" op_e2e "github.com/ethereum-optimism/optimism/op-e2e"
e2eutils "github.com/ethereum-optimism/optimism/op-e2e/e2eutils"
"github.com/ethereum-optimism/optimism/op-node/rollup/derive" "github.com/ethereum-optimism/optimism/op-node/rollup/derive"
"github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/accounts/abi/bind"
...@@ -54,10 +54,10 @@ func TestE2EBridge(t *testing.T) { ...@@ -54,10 +54,10 @@ func TestE2EBridge(t *testing.T) {
withdrawTx, err := l2StandardBridge.Withdraw(l2Opts, processor.EthAddress, big.NewInt(params.Ether), 200_000, []byte{byte(1)}) withdrawTx, err := l2StandardBridge.Withdraw(l2Opts, processor.EthAddress, big.NewInt(params.Ether), 200_000, []byte{byte(1)})
require.NoError(t, err) require.NoError(t, err)
depositReceipt, err := e2eutils.WaitReceiptOK(setupCtx, l1Client, depositTx.Hash()) depositReceipt, err := utils.WaitReceiptOK(setupCtx, l1Client, depositTx.Hash())
require.NoError(t, err) require.NoError(t, err)
withdrawalReceipt, err := e2eutils.WaitReceiptOK(setupCtx, l2Client, withdrawTx.Hash()) withdrawalReceipt, err := utils.WaitReceiptOK(setupCtx, l2Client, withdrawTx.Hash())
require.NoError(t, err) require.NoError(t, err)
t.Run("indexes ETH deposits", func(t *testing.T) { t.Run("indexes ETH deposits", func(t *testing.T) {
...@@ -71,7 +71,7 @@ func TestE2EBridge(t *testing.T) { ...@@ -71,7 +71,7 @@ func TestE2EBridge(t *testing.T) {
// (1) Test Deposit Initiation // (1) Test Deposit Initiation
// wait for processor catchup // wait for processor catchup
require.NoError(t, e2eutils.WaitFor(testCtx, 500*time.Millisecond, func() (bool, error) { require.NoError(t, utils.WaitFor(testCtx, 500*time.Millisecond, func() (bool, error) {
l1Header := testSuite.Indexer.L1Processor.LatestProcessedHeader() l1Header := testSuite.Indexer.L1Processor.LatestProcessedHeader()
return l1Header != nil && l1Header.Number.Uint64() >= depositReceipt.BlockNumber.Uint64(), nil return l1Header != nil && l1Header.Number.Uint64() >= depositReceipt.BlockNumber.Uint64(), nil
})) }))
...@@ -106,11 +106,11 @@ func TestE2EBridge(t *testing.T) { ...@@ -106,11 +106,11 @@ func TestE2EBridge(t *testing.T) {
} }
// wait for the l2 processor to catch this deposit in the derivation process // wait for the l2 processor to catch this deposit in the derivation process
_, err = e2eutils.WaitReceiptOK(testCtx, l2Client, depositTxHash) _, err = utils.WaitReceiptOK(testCtx, l2Client, depositTxHash)
require.NoError(t, err) require.NoError(t, err)
l2Height, err := l2Client.BlockNumber(testCtx) l2Height, err := l2Client.BlockNumber(testCtx)
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, e2eutils.WaitFor(testCtx, 500*time.Millisecond, func() (bool, error) { require.NoError(t, utils.WaitFor(testCtx, 500*time.Millisecond, func() (bool, error) {
l2Header := testSuite.Indexer.L2Processor.LatestProcessedHeader() l2Header := testSuite.Indexer.L2Processor.LatestProcessedHeader()
return l2Header != nil && l2Header.Number.Uint64() >= l2Height, nil return l2Header != nil && l2Header.Number.Uint64() >= l2Height, nil
})) }))
...@@ -128,7 +128,7 @@ func TestE2EBridge(t *testing.T) { ...@@ -128,7 +128,7 @@ func TestE2EBridge(t *testing.T) {
// (1) Test Withdrawal Initiation // (1) Test Withdrawal Initiation
// wait for processor catchup // wait for processor catchup
require.NoError(t, e2eutils.WaitFor(testCtx, 500*time.Millisecond, func() (bool, error) { require.NoError(t, utils.WaitFor(testCtx, 500*time.Millisecond, func() (bool, error) {
l2Header := testSuite.Indexer.L2Processor.LatestProcessedHeader() l2Header := testSuite.Indexer.L2Processor.LatestProcessedHeader()
return l2Header != nil && l2Header.Number.Uint64() >= withdrawalReceipt.BlockNumber.Uint64(), nil return l2Header != nil && l2Header.Number.Uint64() >= withdrawalReceipt.BlockNumber.Uint64(), nil
})) }))
...@@ -154,7 +154,7 @@ func TestE2EBridge(t *testing.T) { ...@@ -154,7 +154,7 @@ func TestE2EBridge(t *testing.T) {
// prove & wait for processor catchup // prove & wait for processor catchup
withdrawParams, proveReceipt := op_e2e.ProveWithdrawal(t, *testSuite.OpCfg, l1Client, testSuite.OpSys.Nodes["sequencer"], testSuite.OpCfg.Secrets.Alice, withdrawalReceipt) withdrawParams, proveReceipt := op_e2e.ProveWithdrawal(t, *testSuite.OpCfg, l1Client, testSuite.OpSys.Nodes["sequencer"], testSuite.OpCfg.Secrets.Alice, withdrawalReceipt)
require.NoError(t, e2eutils.WaitFor(testCtx, 500*time.Millisecond, func() (bool, error) { require.NoError(t, utils.WaitFor(testCtx, 500*time.Millisecond, func() (bool, error) {
l1Header := testSuite.Indexer.L1Processor.LatestProcessedHeader() l1Header := testSuite.Indexer.L1Processor.LatestProcessedHeader()
return l1Header != nil && l1Header.Number.Uint64() >= proveReceipt.BlockNumber.Uint64(), nil return l1Header != nil && l1Header.Number.Uint64() >= proveReceipt.BlockNumber.Uint64(), nil
})) }))
...@@ -168,7 +168,7 @@ func TestE2EBridge(t *testing.T) { ...@@ -168,7 +168,7 @@ func TestE2EBridge(t *testing.T) {
// finalize & wait for processor catchup // finalize & wait for processor catchup
finalizeReceipt := op_e2e.FinalizeWithdrawal(t, *testSuite.OpCfg, l1Client, testSuite.OpCfg.Secrets.Alice, withdrawalReceipt, withdrawParams) finalizeReceipt := op_e2e.FinalizeWithdrawal(t, *testSuite.OpCfg, l1Client, testSuite.OpCfg.Secrets.Alice, withdrawalReceipt, withdrawParams)
require.NoError(t, e2eutils.WaitFor(testCtx, 500*time.Millisecond, func() (bool, error) { require.NoError(t, utils.WaitFor(testCtx, 500*time.Millisecond, func() (bool, error) {
l1Header := testSuite.Indexer.L1Processor.LatestProcessedHeader() l1Header := testSuite.Indexer.L1Processor.LatestProcessedHeader()
return l1Header != nil && l1Header.Number.Uint64() >= finalizeReceipt.BlockNumber.Uint64(), nil return l1Header != nil && l1Header.Number.Uint64() >= finalizeReceipt.BlockNumber.Uint64(), nil
})) }))
......
...@@ -112,7 +112,7 @@ func setupTestDatabase(t *testing.T) string { ...@@ -112,7 +112,7 @@ func setupTestDatabase(t *testing.T) string {
// setup schema, migration files ware walked in lexical order // setup schema, migration files ware walked in lexical order
t.Logf("created database %s", dbName) t.Logf("created database %s", dbName)
db, err := sql.Open("pgx", fmt.Sprintf("database=%s", dbName)) db, err := sql.Open("pgx", fmt.Sprintf("postgres://%s@localhost:5432/%s?sslmode=disable", user, dbName))
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, db.Ping()) require.NoError(t, db.Ping())
defer db.Close() defer db.Close()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment