Commit 68b52398 authored by Hamdi Allam's avatar Hamdi Allam Committed by GitHub

update op-e2e setup (#11857)

parent 924896be
...@@ -33,6 +33,7 @@ import ( ...@@ -33,6 +33,7 @@ import (
"github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/eth/ethconfig"
"github.com/ethereum/go-ethereum/ethclient" "github.com/ethereum/go-ethereum/ethclient"
"github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/node" "github.com/ethereum/go-ethereum/node"
...@@ -266,6 +267,9 @@ type SystemConfig struct { ...@@ -266,6 +267,9 @@ type SystemConfig struct {
// Explicitly disable batcher, for tests that rely on unsafe L2 payloads // Explicitly disable batcher, for tests that rely on unsafe L2 payloads
DisableBatcher bool DisableBatcher bool
// Explicitly disable setting `RollupSequencerHTTP` to forward txs from sentry nodes
DisableTxForwarder bool
// Configure data-availability type that is used by the batcher. // Configure data-availability type that is used by the batcher.
DataAvailabilityType batcherFlags.DataAvailabilityType DataAvailabilityType batcherFlags.DataAvailabilityType
...@@ -610,25 +614,44 @@ func (cfg SystemConfig) Start(t *testing.T, _opts ...SystemConfigOption) (*Syste ...@@ -610,25 +614,44 @@ func (cfg SystemConfig) Start(t *testing.T, _opts ...SystemConfigOption) (*Syste
return nil, err return nil, err
} }
// Ordered such that the Sequencer is initialized first. Setup this way so that
// the `RollupSequencerHTTP` GethOption can be supplied to any sentry nodes.
l2Nodes := []string{RoleSeq}
for name := range cfg.Nodes { for name := range cfg.Nodes {
if name == RoleL1 { if name == RoleSeq {
return nil, fmt.Errorf("node name %s is reserved for L1 node", RoleL1) continue
} }
l2Nodes = append(l2Nodes, name)
}
for _, name := range l2Nodes {
var ethClient services.EthInstance var ethClient services.EthInstance
if cfg.ExternalL2Shim == "" { if cfg.ExternalL2Shim == "" {
if name != RoleSeq && !cfg.DisableTxForwarder {
cfg.GethOptions[name] = append(cfg.GethOptions[name], func(ethCfg *ethconfig.Config, nodeCfg *node.Config) error {
ethCfg.RollupSequencerHTTP = sys.EthInstances[RoleSeq].UserRPC().RPC()
return nil
})
}
l2Geth, err := geth.InitL2(name, l2Genesis, cfg.JWTFilePath, cfg.GethOptions[name]...) l2Geth, err := geth.InitL2(name, l2Genesis, cfg.JWTFilePath, cfg.GethOptions[name]...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
err = l2Geth.Node.Start() if err := l2Geth.Node.Start(); err != nil {
if err != nil {
return nil, err return nil, err
} }
ethClient = l2Geth ethClient = l2Geth
} else { } else {
if len(cfg.GethOptions[name]) > 0 { if len(cfg.GethOptions[name]) > 0 {
t.Skip("External L2 nodes do not support configuration through GethOptions") t.Skip("External L2 nodes do not support configuration through GethOptions")
} }
if name != RoleSeq && !cfg.DisableTxForwarder {
cfg.Loggers[name].Warn("External L2 nodes do not support `RollupSequencerHTTP` configuration. No tx forwarding support.")
}
ethClient = (&ExternalRunner{ ethClient = (&ExternalRunner{
Name: name, Name: name,
BinPath: cfg.ExternalL2Shim, BinPath: cfg.ExternalL2Shim,
...@@ -636,6 +659,7 @@ func (cfg SystemConfig) Start(t *testing.T, _opts ...SystemConfigOption) (*Syste ...@@ -636,6 +659,7 @@ func (cfg SystemConfig) Start(t *testing.T, _opts ...SystemConfigOption) (*Syste
JWTPath: cfg.JWTFilePath, JWTPath: cfg.JWTFilePath,
}).Run(t) }).Run(t)
} }
sys.EthInstances[name] = ethClient sys.EthInstances[name] = ethClient
} }
......
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