diff --git a/PENDING.md b/PENDING.md index 36ad292fe3..07d9a50046 100644 --- a/PENDING.md +++ b/PENDING.md @@ -55,6 +55,7 @@ decoded automatically. * [\#3670] CLI support for showing bech32 addresses in Ledger devices * [\#3711] Update `tx sign` to use `--from` instead of the deprecated `--name` CLI flag. +* [\#3730](https://github.com/cosmos/cosmos-sdk/issues/3730) Improve workflow for `gaiad gentx` with offline public keys, by outputting stdtx file that needs to be signed. ### Gaia diff --git a/cmd/gaia/init/gentx.go b/cmd/gaia/init/gentx.go index e7779a343d..8fd52fb5df 100644 --- a/cmd/gaia/init/gentx.go +++ b/cmd/gaia/init/gentx.go @@ -24,6 +24,7 @@ import ( "github.com/cosmos/cosmos-sdk/client/utils" "github.com/cosmos/cosmos-sdk/cmd/gaia/app" "github.com/cosmos/cosmos-sdk/codec" + kbkeys "github.com/cosmos/cosmos-sdk/crypto/keys" "github.com/cosmos/cosmos-sdk/server" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/auth" @@ -129,9 +130,20 @@ following delegation and commission default parameters: return err } + info, err := txBldr.Keybase().Get(name) + if err != nil { + return err + } + + if info.GetType() == kbkeys.TypeOffline { + fmt.Println("Offline key passed in. Use `gaiacli tx sign` command to sign:") + return utils.PrintUnsignedStdTx(txBldr, cliCtx, []sdk.Msg{msg}, true) + } + // write the unsigned transaction to the buffer w := bytes.NewBuffer([]byte{}) cliCtx = cliCtx.WithOutput(w) + if err = utils.PrintUnsignedStdTx(txBldr, cliCtx, []sdk.Msg{msg}, true); err != nil { return err } @@ -163,6 +175,7 @@ following delegation and commission default parameters: fmt.Fprintf(os.Stderr, "Genesis transaction written to %q\n", outputDocument) return nil + }, }