From f2cf85a0d6fb71dc5263acada2faa254c1f91d47 Mon Sep 17 00:00:00 2001 From: Adrian Sutton Date: Fri, 16 Feb 2024 06:48:26 +1000 Subject: [PATCH] op-node: Expose method to load rollup config without a CLI context. (#9554) --- op-bootnode/bootnode/entrypoint.go | 2 +- op-conductor/conductor/config.go | 2 +- op-node/cmd/networks/cmd.go | 2 +- op-node/service.go | 15 +++++++++++---- op-program/host/config/config.go | 3 +-- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/op-bootnode/bootnode/entrypoint.go b/op-bootnode/bootnode/entrypoint.go index df4e8b7e3191..0dcf356fa1f3 100644 --- a/op-bootnode/bootnode/entrypoint.go +++ b/op-bootnode/bootnode/entrypoint.go @@ -50,7 +50,7 @@ func Main(cliCtx *cli.Context) error { m := metrics.NewMetrics("default") ctx := context.Background() - config, err := opnode.NewRollupConfig(logger, cliCtx) + config, err := opnode.NewRollupConfigFromCLI(logger, cliCtx) if err != nil { return err } diff --git a/op-conductor/conductor/config.go b/op-conductor/conductor/config.go index b3661fe4c8ec..ad65a0e34cc3 100644 --- a/op-conductor/conductor/config.go +++ b/op-conductor/conductor/config.go @@ -101,7 +101,7 @@ func NewConfig(ctx *cli.Context, log log.Logger) (*Config, error) { return nil, errors.Wrap(err, "missing required flags") } - rollupCfg, err := opnode.NewRollupConfig(log, ctx) + rollupCfg, err := opnode.NewRollupConfigFromCLI(log, ctx) if err != nil { return nil, errors.Wrap(err, "failed to load rollup config") } diff --git a/op-node/cmd/networks/cmd.go b/op-node/cmd/networks/cmd.go index 90f5f7fd083f..80a4e69cdadd 100644 --- a/op-node/cmd/networks/cmd.go +++ b/op-node/cmd/networks/cmd.go @@ -29,7 +29,7 @@ var Subcommands = []*cli.Command{ return errors.New("must specify a network name") } - rCfg, err := opnode.NewRollupConfig(logger, ctx) + rCfg, err := opnode.NewRollupConfigFromCLI(logger, ctx) if err != nil { return err } diff --git a/op-node/service.go b/op-node/service.go index efdbbdfbab5a..687764aa7cf0 100644 --- a/op-node/service.go +++ b/op-node/service.go @@ -33,7 +33,7 @@ func NewConfig(ctx *cli.Context, log log.Logger) (*node.Config, error) { return nil, err } - rollupConfig, err := NewRollupConfig(log, ctx) + rollupConfig, err := NewRollupConfigFromCLI(log, ctx) if err != nil { return nil, err } @@ -196,12 +196,21 @@ func NewDriverConfig(ctx *cli.Context) *driver.Config { } } -func NewRollupConfig(log log.Logger, ctx *cli.Context) (*rollup.Config, error) { +func NewRollupConfigFromCLI(log log.Logger, ctx *cli.Context) (*rollup.Config, error) { network := ctx.String(opflags.NetworkFlagName) rollupConfigPath := ctx.String(opflags.RollupConfigFlagName) if ctx.Bool(flags.BetaExtraNetworks.Name) { log.Warn("The beta.extra-networks flag is deprecated and can be omitted safely.") } + rollupConfig, err := NewRollupConfig(log, network, rollupConfigPath) + if err != nil { + return nil, err + } + applyOverrides(ctx, rollupConfig) + return rollupConfig, nil +} + +func NewRollupConfig(log log.Logger, network string, rollupConfigPath string) (*rollup.Config, error) { if network != "" { if rollupConfigPath != "" { log.Error(`Cannot configure network and rollup-config at the same time. @@ -213,7 +222,6 @@ Conflicting configuration is deprecated, and will stop the op-node from starting if err != nil { return nil, err } - applyOverrides(ctx, rollupConfig) return rollupConfig, nil } @@ -227,7 +235,6 @@ Conflicting configuration is deprecated, and will stop the op-node from starting if err := json.NewDecoder(file).Decode(&rollupConfig); err != nil { return nil, fmt.Errorf("failed to decode rollup config: %w", err) } - applyOverrides(ctx, &rollupConfig) return &rollupConfig, nil } diff --git a/op-program/host/config/config.go b/op-program/host/config/config.go index 9104c6934c31..25f1a75724c9 100644 --- a/op-program/host/config/config.go +++ b/op-program/host/config/config.go @@ -46,7 +46,6 @@ type Config struct { L1RPCKind sources.RPCProviderKind // L2Head is the l2 block hash contained in the L2 Output referenced by the L2OutputRoot - // TODO(inphi): This can be made optional with hardcoded rollup configs and output oracle addresses by searching the oracle for the l2 output root L2Head common.Hash // L2OutputRoot is the agreed L2 output root to start derivation from L2OutputRoot common.Hash @@ -138,7 +137,7 @@ func NewConfigFromCLI(log log.Logger, ctx *cli.Context) (*Config, error) { if err := flags.CheckRequired(ctx); err != nil { return nil, err } - rollupCfg, err := opnode.NewRollupConfig(log, ctx) + rollupCfg, err := opnode.NewRollupConfigFromCLI(log, ctx) if err != nil { return nil, err }