From 0b10430d65f8313d5a387c0aaf1d26a73d912e1d Mon Sep 17 00:00:00 2001 From: ValarDragon Date: Thu, 5 Jul 2018 18:03:41 -0700 Subject: [PATCH] gaiacli, keys: Improve error message when deleting non-existant key --- CHANGELOG.md | 3 ++- client/keys/delete.go | 13 +++++++++---- crypto/keys/keybase.go | 3 +++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb9672c5e5..f46475843f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -80,8 +80,9 @@ IMPROVEMENTS * [stake] module reorganized to include `types` and `keeper` package * [stake] keeper always loads the store (instead passing around which doesn't really boost efficiency) * [stake] edit-validator changes now can use the keyword [do-not-modify] to not modify unspecified `--flag` (aka won't set them to `""` value) -* [types] added common tag constants * [stake] offload more generic functionality from the handler into the keeper +* [types] added common tag constants +* [keys] improve error message when deleting non-existent key * added contributing guidelines BUG FIXES diff --git a/client/keys/delete.go b/client/keys/delete.go index f38c529a6f..944feb4b19 100644 --- a/client/keys/delete.go +++ b/client/keys/delete.go @@ -25,14 +25,19 @@ func deleteKeyCommand() *cobra.Command { func runDeleteCmd(cmd *cobra.Command, args []string) error { name := args[0] - buf := client.BufferStdin() - oldpass, err := client.GetPassword( - "DANGER - enter password to permanently delete key:", buf) + kb, err := GetKeyBase() if err != nil { return err } - kb, err := GetKeyBase() + _, err = kb.Get(name) + if err != nil { + return err + } + + buf := client.BufferStdin() + oldpass, err := client.GetPassword( + "DANGER - enter password to permanently delete key:", buf) if err != nil { return err } diff --git a/crypto/keys/keybase.go b/crypto/keys/keybase.go index 82adc53dda..7cf43eea67 100644 --- a/crypto/keys/keybase.go +++ b/crypto/keys/keybase.go @@ -188,6 +188,9 @@ func (kb dbKeybase) List() ([]Info, error) { // Get returns the public information about one key. func (kb dbKeybase) Get(name string) (Info, error) { bs := kb.db.Get(infoKey(name)) + if len(bs) == 0 { + return nil, fmt.Errorf("Key %s not found", name) + } return readInfo(bs) }