From 1c837bb6d8cb7a77d99404425da2a43e8f0a8bdd Mon Sep 17 00:00:00 2001 From: John Adler Date: Tue, 10 Jun 2025 11:26:08 -0400 Subject: [PATCH] Fix path when genesis file already exists. --- apps/evm/based/cmd/init.go | 5 +++-- apps/evm/single/cmd/init.go | 5 +++-- apps/testapp/cmd/init.go | 5 +++-- pkg/genesis/io.go | 6 ++++++ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/apps/evm/based/cmd/init.go b/apps/evm/based/cmd/init.go index 773e6ffe9..f3de99ecf 100644 --- a/apps/evm/based/cmd/init.go +++ b/apps/evm/based/cmd/init.go @@ -62,9 +62,10 @@ func InitCmd() *cobra.Command { // Initialize genesis without app state err = rollgenesis.CreateGenesis(homePath, chainID, 1, proposerAddress) + genesisPath := rollgenesis.GenesisPath(homePath) if errors.Is(err, rollgenesis.ErrGenesisExists) { // check if existing genesis file is valid - if genesis, err := rollgenesis.LoadGenesis(homePath); err == nil { + if genesis, err := rollgenesis.LoadGenesis(genesisPath); err == nil { if err := genesis.Validate(); err != nil { return fmt.Errorf("existing genesis file is invalid: %w", err) } @@ -72,7 +73,7 @@ func InitCmd() *cobra.Command { return fmt.Errorf("error loading existing genesis file: %w", err) } - cmd.Printf("Genesis file already exists at %s, skipping creation.\n", homePath) + cmd.Printf("Genesis file already exists at %s, skipping creation.\n", genesisPath) } else if err != nil { return fmt.Errorf("error initializing genesis file: %w", err) } diff --git a/apps/evm/single/cmd/init.go b/apps/evm/single/cmd/init.go index 773e6ffe9..f3de99ecf 100644 --- a/apps/evm/single/cmd/init.go +++ b/apps/evm/single/cmd/init.go @@ -62,9 +62,10 @@ func InitCmd() *cobra.Command { // Initialize genesis without app state err = rollgenesis.CreateGenesis(homePath, chainID, 1, proposerAddress) + genesisPath := rollgenesis.GenesisPath(homePath) if errors.Is(err, rollgenesis.ErrGenesisExists) { // check if existing genesis file is valid - if genesis, err := rollgenesis.LoadGenesis(homePath); err == nil { + if genesis, err := rollgenesis.LoadGenesis(genesisPath); err == nil { if err := genesis.Validate(); err != nil { return fmt.Errorf("existing genesis file is invalid: %w", err) } @@ -72,7 +73,7 @@ func InitCmd() *cobra.Command { return fmt.Errorf("error loading existing genesis file: %w", err) } - cmd.Printf("Genesis file already exists at %s, skipping creation.\n", homePath) + cmd.Printf("Genesis file already exists at %s, skipping creation.\n", genesisPath) } else if err != nil { return fmt.Errorf("error initializing genesis file: %w", err) } diff --git a/apps/testapp/cmd/init.go b/apps/testapp/cmd/init.go index 773e6ffe9..f3de99ecf 100644 --- a/apps/testapp/cmd/init.go +++ b/apps/testapp/cmd/init.go @@ -62,9 +62,10 @@ func InitCmd() *cobra.Command { // Initialize genesis without app state err = rollgenesis.CreateGenesis(homePath, chainID, 1, proposerAddress) + genesisPath := rollgenesis.GenesisPath(homePath) if errors.Is(err, rollgenesis.ErrGenesisExists) { // check if existing genesis file is valid - if genesis, err := rollgenesis.LoadGenesis(homePath); err == nil { + if genesis, err := rollgenesis.LoadGenesis(genesisPath); err == nil { if err := genesis.Validate(); err != nil { return fmt.Errorf("existing genesis file is invalid: %w", err) } @@ -72,7 +73,7 @@ func InitCmd() *cobra.Command { return fmt.Errorf("error loading existing genesis file: %w", err) } - cmd.Printf("Genesis file already exists at %s, skipping creation.\n", homePath) + cmd.Printf("Genesis file already exists at %s, skipping creation.\n", genesisPath) } else if err != nil { return fmt.Errorf("error initializing genesis file: %w", err) } diff --git a/pkg/genesis/io.go b/pkg/genesis/io.go index 4184360f3..8c9d88e95 100644 --- a/pkg/genesis/io.go +++ b/pkg/genesis/io.go @@ -10,6 +10,12 @@ import ( var ErrGenesisExists = fmt.Errorf("genesis file already exists") +// GenesisPath returns the genesis file path from a home directory. +func GenesisPath(homePath string) string { + configDir := filepath.Join(homePath, "config") + return filepath.Join(configDir, "genesis.json") +} + // CreateGenesis creates and saves a genesis file with the given app state. // If the genesis file already exists, it skips the creation and returns ErrGenesisExists. // The genesis file is saved in the config directory of the specified home path.