From 9f5f4534e1b68e0585715e721e62346222e01253 Mon Sep 17 00:00:00 2001 From: Viacheslav Gonkivskyi Date: Tue, 16 Apr 2024 15:02:12 +0300 Subject: [PATCH] rework options --- cmd/util.go | 6 +++++- nodebuilder/state/core.go | 2 +- nodebuilder/state/flags.go | 14 +++++++------- nodebuilder/state/module.go | 19 ++++++------------- 4 files changed, 19 insertions(+), 22 deletions(-) diff --git a/cmd/util.go b/cmd/util.go index bbc901e4f2..cf48b00e78 100644 --- a/cmd/util.go +++ b/cmd/util.go @@ -111,9 +111,13 @@ func PersistentPreRunEnv(cmd *cobra.Command, nodeType node.Type, _ []string) err return err } + err = state.ParseFlags(cmd, &cfg.State) + if err != nil { + return err + } + rpc_cfg.ParseFlags(cmd, &cfg.RPC) gateway.ParseFlags(cmd, &cfg.Gateway) - state.ParseFlags(cmd, &cfg.State) switch nodeType { case node.Light: diff --git a/nodebuilder/state/core.go b/nodebuilder/state/core.go index 9b97d226bf..51f2a6bfbf 100644 --- a/nodebuilder/state/core.go +++ b/nodebuilder/state/core.go @@ -19,7 +19,7 @@ func coreAccessor( signer *apptypes.KeyringSigner, sync *sync.Syncer[*header.ExtendedHeader], fraudServ libfraud.Service[*header.ExtendedHeader], - opts ...state.Option, + opts []state.Option, ) (*state.CoreAccessor, Module, *modfraud.ServiceBreaker[*state.CoreAccessor, *header.ExtendedHeader]) { ca := state.NewCoreAccessor(signer, sync, corecfg.IP, corecfg.RPCPort, corecfg.GRPCPort, opts...) sBreaker := &modfraud.ServiceBreaker[*state.CoreAccessor, *header.ExtendedHeader]{ diff --git a/nodebuilder/state/flags.go b/nodebuilder/state/flags.go index 1149328ca9..75d5f0fb28 100644 --- a/nodebuilder/state/flags.go +++ b/nodebuilder/state/flags.go @@ -29,7 +29,7 @@ func Flags() *flag.FlagSet { } // ParseFlags parses State flags from the given cmd and saves them to the passed config. -func ParseFlags(cmd *cobra.Command, cfg *Config) { +func ParseFlags(cmd *cobra.Command, cfg *Config) error { keyringAccName := cmd.Flag(keyringAccNameFlag).Value.String() if keyringAccName != "" { cfg.KeyringAccName = keyringAccName @@ -38,11 +38,11 @@ func ParseFlags(cmd *cobra.Command, cfg *Config) { cfg.KeyringBackend = cmd.Flag(keyringBackendFlag).Value.String() addr := cmd.Flag(granterAddressFlag).Value.String() - if addr != "" { - sdkAddress, err := sdktypes.AccAddressFromBech32(addr) - if err != nil { - panic(err) - } - cfg.GranterAddress = sdkAddress + if addr == "" { + return nil } + + sdkAddress, err := sdktypes.AccAddressFromBech32(addr) + cfg.GranterAddress = sdkAddress + return err } diff --git a/nodebuilder/state/module.go b/nodebuilder/state/module.go index fe5b6d7578..e8d701de75 100644 --- a/nodebuilder/state/module.go +++ b/nodebuilder/state/module.go @@ -6,10 +6,6 @@ import ( logging "github.com/ipfs/go-log/v2" "go.uber.org/fx" - apptypes "github.com/celestiaorg/celestia-app/x/blob/types" - libfraud "github.com/celestiaorg/go-fraud" - "github.com/celestiaorg/go-header/sync" - "github.com/celestiaorg/celestia-node/header" "github.com/celestiaorg/celestia-node/libs/fxutil" "github.com/celestiaorg/celestia-node/nodebuilder/core" @@ -25,19 +21,16 @@ var log = logging.Logger("module/state") func ConstructModule(tp node.Type, cfg *Config, coreCfg *core.Config) fx.Option { // sanitize config values before constructing module cfgErr := cfg.Validate() - + opts := make([]state.Option, 0) + if !cfg.GranterAddress.Empty() { + opts = append(opts, state.WithGranter(cfg.GranterAddress)) + } baseComponents := fx.Options( fx.Supply(*cfg), - fx.Supply(cfg.GranterAddress), fx.Error(cfgErr), + fx.Supply(opts), fxutil.ProvideIf(coreCfg.IsEndpointConfigured(), fx.Annotate( - func( - signer *apptypes.KeyringSigner, - sync *sync.Syncer[*header.ExtendedHeader], - fraudServ libfraud.Service[*header.ExtendedHeader], - ) (*state.CoreAccessor, Module, *modfraud.ServiceBreaker[*state.CoreAccessor, *header.ExtendedHeader]) { - return coreAccessor(*coreCfg, signer, sync, fraudServ, state.WithGranter(cfg.GranterAddress)) - }, + coreAccessor, fx.OnStart(func(ctx context.Context, breaker *modfraud.ServiceBreaker[*state.CoreAccessor, *header.ExtendedHeader]) error { return breaker.Start(ctx)