From 1e97074165a135f987c983589b669cfdb5a8d686 Mon Sep 17 00:00:00 2001 From: HaoyangLiu Date: Mon, 3 Sep 2018 14:13:14 +0800 Subject: [PATCH] Refactor key sign command and add it to gaiacli --- client/keys/root.go | 1 + client/keys/sign.go | 58 +++++++++++++++++++++++---------------------- 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/client/keys/root.go b/client/keys/root.go index 847c35dbd..5293642a7 100644 --- a/client/keys/root.go +++ b/client/keys/root.go @@ -22,6 +22,7 @@ func Commands() *cobra.Command { addKeyCommand(), listKeysCmd, showKeysCmd(), + signCommand(), client.LineBreak, deleteKeyCommand(), updateKeyCommand(), diff --git a/client/keys/sign.go b/client/keys/sign.go index 03898167b..b8b52a303 100644 --- a/client/keys/sign.go +++ b/client/keys/sign.go @@ -16,39 +16,41 @@ const ( flagTx = "tx" ) -func init() { - keySignCmd.Flags().String(flagFrom, "", "Name of private key with which to sign") - keySignCmd.Flags().String(flagPassword, "", "Password of private key") - keySignCmd.Flags().String(flagTx, "", "Base64 encoded tx data for sign") +func signCommand() *cobra.Command { + cmd := &cobra.Command{ + Use: "sign", + Short: "Sign user specified data", + Long: `Sign user data with specified key and password`, + RunE: runSignCmd, + } + cmd.Flags().String(flagFrom, "", "Name of private key with which to sign") + cmd.Flags().String(flagPassword, "", "Password of private key") + cmd.Flags().String(flagTx, "", "Base64 encoded tx data for sign") + return cmd } -var keySignCmd = &cobra.Command{ - Use: "sign", - Short: "Sign user specified data", - Long: `Sign user data with specified key and password`, - RunE: func(cmd *cobra.Command, args []string) error { - name := viper.GetString(flagFrom) - password := viper.GetString(flagPassword) - tx := viper.GetString(flagTx) +func runSignCmd(cmd *cobra.Command, args []string) error { + name := viper.GetString(flagFrom) + password := viper.GetString(flagPassword) + tx := viper.GetString(flagTx) - decodedTx, err := base64.StdEncoding.DecodeString(tx) - if err != nil { - return err - } + decodedTx, err := base64.StdEncoding.DecodeString(tx) + if err != nil { + return err + } - kb, err := GetKeyBase() - if err != nil { - return err - } + kb, err := GetKeyBase() + if err != nil { + return err + } - sig, _, err := kb.Sign(name, password, decodedTx) - if err != nil { - return err - } - encoded := base64.StdEncoding.EncodeToString(sig) - fmt.Println(string(encoded)) - return nil - }, + sig, _, err := kb.Sign(name, password, decodedTx) + if err != nil { + return err + } + encoded := base64.StdEncoding.EncodeToString(sig) + fmt.Println(string(encoded)) + return nil } type keySignBody struct {