diff --git a/PENDING.md b/PENDING.md index 5c9b6541e9f4..71e7c3734d68 100644 --- a/PENDING.md +++ b/PENDING.md @@ -37,6 +37,7 @@ IMPROVEMENTS * [\#2749](https://github.com/cosmos/cosmos-sdk/pull/2749) Add --chain-id flag to gaiad testnet * Gaia + - #2773 Require moniker to be provided on `gaiad init`. - #2672 [Makefile] Updated for better Windows compatibility and ledger support logic, get_tools was rewritten as a cross-compatible Makefile. * SDK diff --git a/cmd/gaia/init/init.go b/cmd/gaia/init/init.go index a297caee2300..1f12da6bde7c 100644 --- a/cmd/gaia/init/init.go +++ b/cmd/gaia/init/init.go @@ -51,25 +51,27 @@ func InitCmd(ctx *server.Context, cdc *codec.Codec, appInit server.AppInit) *cob RunE: func(_ *cobra.Command, _ []string) error { config := ctx.Config config.SetRoot(viper.GetString(cli.HomeFlag)) + chainID := viper.GetString(client.FlagChainID) if chainID == "" { chainID = fmt.Sprintf("test-chain-%v", common.RandStr(6)) } + nodeID, _, err := InitializeNodeValidatorFiles(config) if err != nil { return err } - if viper.GetString(flagMoniker) != "" { - config.Moniker = viper.GetString(flagMoniker) - } + config.Moniker = viper.GetString(flagMoniker) var appState json.RawMessage genFile := config.GenesisFile() + if appState, err = initializeEmptyGenesis(cdc, genFile, chainID, viper.GetBool(flagOverwrite)); err != nil { return err } + if err = ExportGenesisFile(genFile, chainID, nil, appState); err != nil { return err } @@ -91,5 +93,7 @@ func InitCmd(ctx *server.Context, cdc *codec.Codec, appInit server.AppInit) *cob cmd.Flags().BoolP(flagOverwrite, "o", false, "overwrite the genesis.json file") cmd.Flags().String(client.FlagChainID, "", "genesis file chain-id, if left blank will be randomly created") cmd.Flags().String(flagMoniker, "", "set the validator's moniker") + cmd.MarkFlagRequired(flagMoniker) + return cmd } diff --git a/cmd/gaia/init/init_test.go b/cmd/gaia/init/init_test.go index bd5274c26113..d1d9b9ce2d6a 100644 --- a/cmd/gaia/init/init_test.go +++ b/cmd/gaia/init/init_test.go @@ -2,15 +2,16 @@ package init import ( "bytes" - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/cmd/gaia/app" - "github.com/tendermint/tendermint/libs/cli" "io" "io/ioutil" "os" "testing" "time" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/cmd/gaia/app" + "github.com/tendermint/tendermint/libs/cli" + "github.com/cosmos/cosmos-sdk/server" "github.com/cosmos/cosmos-sdk/server/mock" "github.com/stretchr/testify/require" @@ -28,12 +29,16 @@ func TestInitCmd(t *testing.T) { logger := log.NewNopLogger() cfg, err := tcmd.ParseConfig() require.Nil(t, err) + ctx := server.NewContext(cfg, logger) cdc := app.MakeCodec() appInit := server.AppInit{ AppGenState: mock.AppGenState, } cmd := InitCmd(ctx, cdc, appInit) + + viper.Set(flagMoniker, "gaianode-test") + err = cmd.RunE(nil, nil) require.NoError(t, err) } @@ -53,14 +58,19 @@ func setupClientHome(t *testing.T) func() { func TestEmptyState(t *testing.T) { defer server.SetupViper(t)() defer setupClientHome(t)() + logger := log.NewNopLogger() cfg, err := tcmd.ParseConfig() require.Nil(t, err) + ctx := server.NewContext(cfg, logger) cdc := app.MakeCodec() appInit := server.AppInit{ AppGenState: mock.AppGenStateEmpty, } + + viper.Set(flagMoniker, "gaianode-test") + cmd := InitCmd(ctx, cdc, appInit) err = cmd.RunE(nil, nil) require.NoError(t, err) @@ -69,6 +79,7 @@ func TestEmptyState(t *testing.T) { r, w, _ := os.Pipe() os.Stdout = w cmd = server.ExportCmd(ctx, cdc, nil) + err = cmd.RunE(nil, nil) require.NoError(t, err)