Merge PR #4968: Improve error reporting in genutil CLI
This commit is contained in:
committed by
Alexander Bezobchuk
parent
4581ab342b
commit
c9abe72280
@@ -4,6 +4,7 @@ import (
|
||||
"encoding/json"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
"github.com/tendermint/tendermint/libs/cli"
|
||||
@@ -31,12 +32,12 @@ func CollectGenTxsCmd(ctx *server.Context, cdc *codec.Codec,
|
||||
name := viper.GetString(client.FlagName)
|
||||
nodeID, valPubKey, err := genutil.InitializeNodeValidatorFiles(config)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to initialize node validator files")
|
||||
}
|
||||
|
||||
genDoc, err := tmtypes.GenesisDocFromFile(config.GenesisFile())
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to read genesis doc from file")
|
||||
}
|
||||
|
||||
genTxsDir := viper.GetString(flagGenTxDir)
|
||||
@@ -49,7 +50,7 @@ func CollectGenTxsCmd(ctx *server.Context, cdc *codec.Codec,
|
||||
|
||||
appMessage, err := genutil.GenAppStateFromConfig(cdc, config, initCfg, *genDoc, genAccIterator)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to get genesis app state from config")
|
||||
}
|
||||
|
||||
toPrint.AppMessage = appMessage
|
||||
|
||||
@@ -9,6 +9,8 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
flag "github.com/spf13/pflag"
|
||||
"github.com/spf13/viper"
|
||||
@@ -63,7 +65,7 @@ func GenTxCmd(ctx *server.Context, cdc *codec.Codec, mbm module.BasicManager, sm
|
||||
config.SetRoot(viper.GetString(client.FlagHome))
|
||||
nodeID, valPubKey, err := genutil.InitializeNodeValidatorFiles(ctx.Config)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to initialize node validator files")
|
||||
}
|
||||
|
||||
// Read --nodeID, if empty take it from priv_validator.json
|
||||
@@ -74,33 +76,33 @@ func GenTxCmd(ctx *server.Context, cdc *codec.Codec, mbm module.BasicManager, sm
|
||||
if valPubKeyString := viper.GetString(flagPubKey); valPubKeyString != "" {
|
||||
valPubKey, err = sdk.GetConsPubKeyBech32(valPubKeyString)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to get consensus node public key")
|
||||
}
|
||||
}
|
||||
|
||||
genDoc, err := tmtypes.GenesisDocFromFile(config.GenesisFile())
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrapf(err, "failed to read genesis doc file %s", config.GenesisFile())
|
||||
}
|
||||
|
||||
var genesisState map[string]json.RawMessage
|
||||
if err = cdc.UnmarshalJSON(genDoc.AppState, &genesisState); err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to unmarshal genesis state")
|
||||
}
|
||||
|
||||
if err = mbm.ValidateGenesis(genesisState); err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to validate genesis state")
|
||||
}
|
||||
|
||||
kb, err := client.NewKeyBaseFromDir(viper.GetString(flagClientHome))
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to initialize keybase")
|
||||
}
|
||||
|
||||
name := viper.GetString(client.FlagName)
|
||||
key, err := kb.Get(name)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to read from keybase")
|
||||
}
|
||||
|
||||
// Set flags for creating gentx
|
||||
@@ -111,12 +113,12 @@ func GenTxCmd(ctx *server.Context, cdc *codec.Codec, mbm module.BasicManager, sm
|
||||
amount := viper.GetString(flagAmount)
|
||||
coins, err := sdk.ParseCoins(amount)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to parse coins")
|
||||
}
|
||||
|
||||
err = genutil.ValidateAccountInGenesis(genesisState, genAccIterator, key.GetAddress(), coins, cdc)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to validate account in genesis")
|
||||
}
|
||||
|
||||
txBldr := auth.NewTxBuilderFromCLI().WithTxEncoder(utils.GetTxEncoder(cdc))
|
||||
@@ -132,12 +134,12 @@ func GenTxCmd(ctx *server.Context, cdc *codec.Codec, mbm module.BasicManager, sm
|
||||
// create a 'create-validator' message
|
||||
txBldr, msg, err := smbh.BuildCreateValidatorMsg(cliCtx, txBldr)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to build create-validator message")
|
||||
}
|
||||
|
||||
info, err := txBldr.Keybase().Get(name)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to read from tx builder keybase")
|
||||
}
|
||||
|
||||
if info.GetType() == kbkeys.TypeOffline || info.GetType() == kbkeys.TypeMulti {
|
||||
@@ -150,19 +152,19 @@ func GenTxCmd(ctx *server.Context, cdc *codec.Codec, mbm module.BasicManager, sm
|
||||
cliCtx = cliCtx.WithOutput(w)
|
||||
|
||||
if err = utils.PrintUnsignedStdTx(txBldr, cliCtx, []sdk.Msg{msg}); err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to print unsigned std tx")
|
||||
}
|
||||
|
||||
// read the transaction
|
||||
stdTx, err := readUnsignedGenTxFile(cdc, w)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to read unsigned gen tx file")
|
||||
}
|
||||
|
||||
// sign the transaction and write it to the output file
|
||||
signedTx, err := utils.SignStdTx(txBldr, cliCtx, name, stdTx, false, true)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to sign std tx")
|
||||
}
|
||||
|
||||
// Fetch output file name
|
||||
@@ -170,12 +172,12 @@ func GenTxCmd(ctx *server.Context, cdc *codec.Codec, mbm module.BasicManager, sm
|
||||
if outputDocument == "" {
|
||||
outputDocument, err = makeOutputFilepath(config.RootDir, nodeID)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to create output file path")
|
||||
}
|
||||
}
|
||||
|
||||
if err := writeSignedGenTx(cdc, outputDocument, signedTx); err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to write signed gen tx")
|
||||
}
|
||||
|
||||
fmt.Fprintf(os.Stderr, "Genesis transaction written to %q\n", outputDocument)
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
cfg "github.com/tendermint/tendermint/config"
|
||||
@@ -87,7 +88,7 @@ func InitCmd(ctx *server.Context, cdc *codec.Codec, mbm module.BasicManager,
|
||||
}
|
||||
appState, err := codec.MarshalJSONIndent(cdc, mbm.DefaultGenesis())
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "Failed to marshall default genesis state")
|
||||
}
|
||||
|
||||
genDoc := &types.GenesisDoc{}
|
||||
@@ -98,7 +99,7 @@ func InitCmd(ctx *server.Context, cdc *codec.Codec, mbm module.BasicManager,
|
||||
} else {
|
||||
genDoc, err = types.GenesisDocFromFile(genFile)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "Failed to read genesis doc from file")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,7 +107,7 @@ func InitCmd(ctx *server.Context, cdc *codec.Codec, mbm module.BasicManager,
|
||||
genDoc.Validators = nil
|
||||
genDoc.AppState = appState
|
||||
if err = genutil.ExportGenesisFile(genDoc, genFile); err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "Failed to export gensis file")
|
||||
}
|
||||
|
||||
toPrint := newPrintInfo(config.Moniker, chainID, nodeID, "", appState)
|
||||
|
||||
@@ -4,6 +4,8 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/tendermint/tendermint/types"
|
||||
|
||||
@@ -40,7 +42,7 @@ $ %s migrate v0.36 /path/to/genesis.json --chain-id=cosmoshub-3 --genesis-time=2
|
||||
|
||||
genDoc, err := types.GenesisDocFromFile(importGenesis)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrapf(err, "failed to read genesis document from file %s", importGenesis)
|
||||
}
|
||||
|
||||
var initialState extypes.AppMap
|
||||
@@ -59,7 +61,7 @@ $ %s migrate v0.36 /path/to/genesis.json --chain-id=cosmoshub-3 --genesis-time=2
|
||||
|
||||
err := t.UnmarshalText([]byte(genesisTime))
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to unmarshal genesis time")
|
||||
}
|
||||
|
||||
genDoc.GenesisTime = t
|
||||
@@ -72,7 +74,7 @@ $ %s migrate v0.36 /path/to/genesis.json --chain-id=cosmoshub-3 --genesis-time=2
|
||||
|
||||
out, err := cdc.MarshalJSONIndent(genDoc, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrap(err, "failed to marshal genesis doc")
|
||||
}
|
||||
|
||||
fmt.Println(string(sdk.MustSortJSON(out)))
|
||||
|
||||
Reference in New Issue
Block a user