Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
5f9dfeba
Commit
5f9dfeba
authored
Jul 19, 2023
by
Hamdi Allam
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
utilize opio and op-service/log for log cli flags
parent
d312b494
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
20 additions
and
34 deletions
+20
-34
go.mod
go.mod
+1
-1
cli.go
indexer/cli/cli.go
+6
-20
blocks_e2e_test.go
indexer/e2e_test/blocks_e2e_test.go
+3
-3
bridge_e2e_test.go
indexer/e2e_test/bridge_e2e_test.go
+9
-9
setup.go
indexer/e2e_test/setup.go
+1
-1
No files found.
go.mod
View file @
5f9dfeba
...
@@ -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
...
...
indexer/cli/cli.go
View file @
5f9dfeba
...
@@ -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"
,
...
...
indexer/e2e_test/blocks_e2e_test.go
View file @
5f9dfeba
...
@@ -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
,
e2e
utils
.
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
,
e2e
utils
.
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
...
...
indexer/e2e_test/bridge_e2e_test.go
View file @
5f9dfeba
...
@@ -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
:=
e2e
utils
.
WaitReceiptOK
(
setupCtx
,
l1Client
,
depositTx
.
Hash
())
depositReceipt
,
err
:=
utils
.
WaitReceiptOK
(
setupCtx
,
l1Client
,
depositTx
.
Hash
())
require
.
NoError
(
t
,
err
)
require
.
NoError
(
t
,
err
)
withdrawalReceipt
,
err
:=
e2e
utils
.
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
,
e2e
utils
.
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
=
e2e
utils
.
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
,
e2e
utils
.
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
,
e2e
utils
.
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
,
e2e
utils
.
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
,
e2e
utils
.
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
}))
}))
...
...
indexer/e2e_test/setup.go
View file @
5f9dfeba
...
@@ -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
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment