client: rename CliContext to Context (#6290)

* Refactor CliContext as Context

* Fix lint issues

* Fix goimports

* Fix gov tests

* Resolved ci-lint issues

* Add changelog

* Rename cliCtx to clientCtx

* Fix mocks and routes

* Add changelog

* Update changelog

* Apply suggestions from code review

Co-authored-by: Alessio Treglia <alessio@tendermint.com>

* merge client/rpc/ro{ot,utes}.go

* Update docs

* client/rpc: remove redundant client/rpc.RegisterRPCRoutes

* regenerate mocks

* Update ADRs

Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
This commit is contained in:
SaReN
2020-06-01 12:46:03 +00:00
committed by GitHub
co-authored by Alessio Treglia Federico Kunze mergify[bot]
parent 654b2fdd10
commit 39f53ac22f
158 changed files with 1810 additions and 1830 deletions
+42 -43
View File
@@ -8,7 +8,6 @@ import (
"github.com/spf13/cobra"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/context"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
@@ -60,14 +59,14 @@ $ %s query staking validator cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhff
),
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
addr, err := sdk.ValAddressFromBech32(args[0])
if err != nil {
return err
}
res, _, err := cliCtx.QueryStore(types.GetValidatorKey(addr), storeName)
res, _, err := clientCtx.QueryStore(types.GetValidatorKey(addr), storeName)
if err != nil {
return err
}
@@ -81,7 +80,7 @@ $ %s query staking validator cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhff
return err
}
return cliCtx.PrintOutput(validator)
return clientCtx.PrintOutput(validator)
},
}
}
@@ -102,9 +101,9 @@ $ %s query staking validators
),
),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
resKVs, _, err := cliCtx.QuerySubspace(types.ValidatorsKey, storeName)
resKVs, _, err := clientCtx.QuerySubspace(types.ValidatorsKey, storeName)
if err != nil {
return err
}
@@ -119,7 +118,7 @@ $ %s query staking validators
validators = append(validators, validator)
}
return cliCtx.PrintOutput(validators)
return clientCtx.PrintOutput(validators)
},
}
}
@@ -140,7 +139,7 @@ $ %s query staking unbonding-delegations-from cosmosvaloper1gghjut3ccd8ay0zduzj6
),
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
valAddr, err := sdk.ValAddressFromBech32(args[0])
if err != nil {
@@ -153,14 +152,14 @@ $ %s query staking unbonding-delegations-from cosmosvaloper1gghjut3ccd8ay0zduzj6
}
route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryValidatorUnbondingDelegations)
res, _, err := cliCtx.QueryWithData(route, bz)
res, _, err := clientCtx.QueryWithData(route, bz)
if err != nil {
return err
}
var ubds types.UnbondingDelegations
cdc.MustUnmarshalJSON(res, &ubds)
return cliCtx.PrintOutput(ubds)
return clientCtx.PrintOutput(ubds)
},
}
}
@@ -182,7 +181,7 @@ $ %s query staking redelegations-from cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fx
),
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
valSrcAddr, err := sdk.ValAddressFromBech32(args[0])
if err != nil {
@@ -195,7 +194,7 @@ $ %s query staking redelegations-from cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fx
}
route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryRedelegations)
res, _, err := cliCtx.QueryWithData(route, bz)
res, _, err := clientCtx.QueryWithData(route, bz)
if err != nil {
return err
}
@@ -205,7 +204,7 @@ $ %s query staking redelegations-from cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fx
return err
}
return cliCtx.PrintOutput(resp)
return clientCtx.PrintOutput(resp)
},
}
}
@@ -226,7 +225,7 @@ $ %s query staking delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p cosm
),
Args: cobra.ExactArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
delAddr, err := sdk.AccAddressFromBech32(args[0])
if err != nil {
@@ -244,7 +243,7 @@ $ %s query staking delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p cosm
}
route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryDelegation)
res, _, err := cliCtx.QueryWithData(route, bz)
res, _, err := clientCtx.QueryWithData(route, bz)
if err != nil {
return err
}
@@ -254,7 +253,7 @@ $ %s query staking delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p cosm
return err
}
return cliCtx.PrintOutput(resp)
return clientCtx.PrintOutput(resp)
},
}
}
@@ -276,7 +275,7 @@ $ %s query staking delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
),
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
delAddr, err := sdk.AccAddressFromBech32(args[0])
if err != nil {
@@ -289,7 +288,7 @@ $ %s query staking delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
}
route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryDelegatorDelegations)
res, _, err := cliCtx.QueryWithData(route, bz)
res, _, err := clientCtx.QueryWithData(route, bz)
if err != nil {
return err
}
@@ -299,7 +298,7 @@ $ %s query staking delegations cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
return err
}
return cliCtx.PrintOutput(resp)
return clientCtx.PrintOutput(resp)
},
}
}
@@ -321,7 +320,7 @@ $ %s query staking delegations-to cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ld
),
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
valAddr, err := sdk.ValAddressFromBech32(args[0])
if err != nil {
@@ -334,7 +333,7 @@ $ %s query staking delegations-to cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ld
}
route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryValidatorDelegations)
res, _, err := cliCtx.QueryWithData(route, bz)
res, _, err := clientCtx.QueryWithData(route, bz)
if err != nil {
return err
}
@@ -344,7 +343,7 @@ $ %s query staking delegations-to cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ld
return err
}
return cliCtx.PrintOutput(resp)
return clientCtx.PrintOutput(resp)
},
}
}
@@ -366,7 +365,7 @@ $ %s query staking unbonding-delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld7
),
Args: cobra.ExactArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
valAddr, err := sdk.ValAddressFromBech32(args[1])
if err != nil {
@@ -384,7 +383,7 @@ $ %s query staking unbonding-delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld7
}
route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryUnbondingDelegation)
res, _, err := cliCtx.QueryWithData(route, bz)
res, _, err := clientCtx.QueryWithData(route, bz)
if err != nil {
return err
}
@@ -394,7 +393,7 @@ $ %s query staking unbonding-delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld7
return err
}
return cliCtx.PrintOutput(ubd)
return clientCtx.PrintOutput(ubd)
},
}
}
@@ -416,7 +415,7 @@ $ %s query staking unbonding-delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld7
),
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
delegatorAddr, err := sdk.AccAddressFromBech32(args[0])
if err != nil {
@@ -429,7 +428,7 @@ $ %s query staking unbonding-delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld7
}
route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryDelegatorUnbondingDelegations)
res, _, err := cliCtx.QueryWithData(route, bz)
res, _, err := clientCtx.QueryWithData(route, bz)
if err != nil {
return err
}
@@ -439,7 +438,7 @@ $ %s query staking unbonding-delegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld7
return err
}
return cliCtx.PrintOutput(ubds)
return clientCtx.PrintOutput(ubds)
},
}
}
@@ -461,7 +460,7 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p co
),
Args: cobra.ExactArgs(3),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
delAddr, err := sdk.AccAddressFromBech32(args[0])
if err != nil {
@@ -484,7 +483,7 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p co
}
route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryRedelegations)
res, _, err := cliCtx.QueryWithData(route, bz)
res, _, err := clientCtx.QueryWithData(route, bz)
if err != nil {
return err
}
@@ -494,7 +493,7 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p co
return err
}
return cliCtx.PrintOutput(resp)
return clientCtx.PrintOutput(resp)
},
}
}
@@ -516,7 +515,7 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
),
),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
delAddr, err := sdk.AccAddressFromBech32(args[0])
if err != nil {
@@ -529,7 +528,7 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
}
route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryRedelegations)
res, _, err := cliCtx.QueryWithData(route, bz)
res, _, err := clientCtx.QueryWithData(route, bz)
if err != nil {
return err
}
@@ -539,7 +538,7 @@ $ %s query staking redelegation cosmos1gghjut3ccd8ay0zduzj64hwre2fxs9ld75ru9p
return err
}
return cliCtx.PrintOutput(resp)
return clientCtx.PrintOutput(resp)
},
}
}
@@ -560,7 +559,7 @@ $ %s query staking historical-info 5
),
),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
height, err := strconv.ParseInt(args[0], 10, 64)
if err != nil || height < 0 {
@@ -573,7 +572,7 @@ $ %s query staking historical-info 5
}
route := fmt.Sprintf("custom/%s/%s", queryRoute, types.QueryHistoricalInfo)
res, _, err := cliCtx.QueryWithData(route, bz)
res, _, err := clientCtx.QueryWithData(route, bz)
if err != nil {
return err
}
@@ -583,7 +582,7 @@ $ %s query staking historical-info 5
return err
}
return cliCtx.PrintOutput(resp)
return clientCtx.PrintOutput(resp)
},
}
}
@@ -604,9 +603,9 @@ $ %s query staking pool
),
),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
bz, _, err := cliCtx.QueryWithData(fmt.Sprintf("custom/%s/pool", storeName), nil)
bz, _, err := clientCtx.QueryWithData(fmt.Sprintf("custom/%s/pool", storeName), nil)
if err != nil {
return err
}
@@ -616,7 +615,7 @@ $ %s query staking pool
return err
}
return cliCtx.PrintOutput(pool)
return clientCtx.PrintOutput(pool)
},
}
}
@@ -637,17 +636,17 @@ $ %s query staking params
),
),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := context.NewCLIContext().WithCodec(cdc)
clientCtx := client.NewContext().WithCodec(cdc)
route := fmt.Sprintf("custom/%s/%s", storeName, types.QueryParameters)
bz, _, err := cliCtx.QueryWithData(route, nil)
bz, _, err := clientCtx.QueryWithData(route, nil)
if err != nil {
return err
}
var params types.Params
cdc.MustUnmarshalJSON(bz, &params)
return cliCtx.PrintOutput(params)
return clientCtx.PrintOutput(params)
},
}
}
+31 -32
View File
@@ -15,7 +15,6 @@ import (
"github.com/tendermint/tendermint/crypto"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/context"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/client/tx"
sdk "github.com/cosmos/cosmos-sdk/types"
@@ -35,7 +34,7 @@ var (
)
// NewTxCmd returns a root CLI command handler for all x/staking transaction commands.
func NewTxCmd(ctx context.CLIContext) *cobra.Command {
func NewTxCmd(clientCtx client.Context) *cobra.Command {
stakingTxCmd := &cobra.Command{
Use: types.ModuleName,
Short: "Staking transaction subcommands",
@@ -45,29 +44,29 @@ func NewTxCmd(ctx context.CLIContext) *cobra.Command {
}
stakingTxCmd.AddCommand(flags.PostCommands(
NewCreateValidatorCmd(ctx),
NewEditValidatorCmd(ctx),
NewDelegateCmd(ctx),
NewRedelegateCmd(ctx),
NewUnbondCmd(ctx),
NewCreateValidatorCmd(clientCtx),
NewEditValidatorCmd(clientCtx),
NewDelegateCmd(clientCtx),
NewRedelegateCmd(clientCtx),
NewUnbondCmd(clientCtx),
)...)
return stakingTxCmd
}
func NewCreateValidatorCmd(ctx context.CLIContext) *cobra.Command {
func NewCreateValidatorCmd(clientCtx client.Context) *cobra.Command {
cmd := &cobra.Command{
Use: "create-validator",
Short: "create new validator initialized with a self-delegation to it",
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := ctx.InitWithInput(cmd.InOrStdin())
txf := tx.NewFactoryFromCLI(ctx.Input).WithTxGenerator(ctx.TxGenerator).WithAccountRetriever(ctx.AccountRetriever)
clientCtx := clientCtx.InitWithInput(cmd.InOrStdin())
txf := tx.NewFactoryFromCLI(clientCtx.Input).WithTxGenerator(clientCtx.TxGenerator).WithAccountRetriever(clientCtx.AccountRetriever)
txf, msg, err := NewBuildCreateValidatorMsg(cliCtx, txf)
txf, msg, err := NewBuildCreateValidatorMsg(clientCtx, txf)
if err != nil {
return err
}
return tx.GenerateOrBroadcastTxWithFactory(cliCtx, txf, msg)
return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg)
},
}
cmd.Flags().AddFlagSet(FsPk)
@@ -87,14 +86,14 @@ func NewCreateValidatorCmd(ctx context.CLIContext) *cobra.Command {
return cmd
}
func NewEditValidatorCmd(ctx context.CLIContext) *cobra.Command {
func NewEditValidatorCmd(clientCtx client.Context) *cobra.Command {
cmd := &cobra.Command{
Use: "edit-validator",
Short: "edit an existing validator account",
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := ctx.InitWithInput(cmd.InOrStdin())
clientCtx := clientCtx.InitWithInput(cmd.InOrStdin())
valAddr := cliCtx.GetFromAddress()
valAddr := clientCtx.GetFromAddress()
description := types.NewDescription(
viper.GetString(FlagMoniker),
viper.GetString(FlagIdentity),
@@ -133,14 +132,14 @@ func NewEditValidatorCmd(ctx context.CLIContext) *cobra.Command {
}
// build and sign the transaction, then broadcast to Tendermint
return tx.GenerateOrBroadcastTx(cliCtx, msg)
return tx.GenerateOrBroadcastTx(clientCtx, msg)
},
}
return cmd
}
func NewDelegateCmd(ctx context.CLIContext) *cobra.Command {
func NewDelegateCmd(clientCtx client.Context) *cobra.Command {
cmd := &cobra.Command{
Use: "delegate [validator-addr] [amount]",
Args: cobra.ExactArgs(2),
@@ -155,14 +154,14 @@ $ %s tx staking delegate cosmosvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm 10
),
),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := ctx.InitWithInput(cmd.InOrStdin())
clientCtx := clientCtx.InitWithInput(cmd.InOrStdin())
amount, err := sdk.ParseCoin(args[1])
if err != nil {
return err
}
delAddr := cliCtx.GetFromAddress()
delAddr := clientCtx.GetFromAddress()
valAddr, err := sdk.ValAddressFromBech32(args[0])
if err != nil {
return err
@@ -173,7 +172,7 @@ $ %s tx staking delegate cosmosvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm 10
return err
}
return tx.GenerateOrBroadcastTx(cliCtx, msg)
return tx.GenerateOrBroadcastTx(clientCtx, msg)
},
}
cmd.Flags().AddFlagSet(fsDescriptionEdit)
@@ -183,7 +182,7 @@ $ %s tx staking delegate cosmosvaloper1l2rsakp388kuv9k8qzq6lrm9taddae7fpx59wm 10
return cmd
}
func NewRedelegateCmd(ctx context.CLIContext) *cobra.Command {
func NewRedelegateCmd(clientCtx client.Context) *cobra.Command {
cmd := &cobra.Command{
Use: "redelegate [src-validator-addr] [dst-validator-addr] [amount]",
Short: "Redelegate illiquid tokens from one validator to another",
@@ -198,9 +197,9 @@ $ %s tx staking redelegate cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
),
),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := ctx.InitWithInput(cmd.InOrStdin())
clientCtx := clientCtx.InitWithInput(cmd.InOrStdin())
delAddr := cliCtx.GetFromAddress()
delAddr := clientCtx.GetFromAddress()
valSrcAddr, err := sdk.ValAddressFromBech32(args[0])
if err != nil {
return err
@@ -221,14 +220,14 @@ $ %s tx staking redelegate cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj
return err
}
return tx.GenerateOrBroadcastTx(cliCtx, msg)
return tx.GenerateOrBroadcastTx(clientCtx, msg)
},
}
return cmd
}
func NewUnbondCmd(ctx context.CLIContext) *cobra.Command {
func NewUnbondCmd(clientCtx client.Context) *cobra.Command {
cmd := &cobra.Command{
Use: "unbond [validator-addr] [amount]",
Short: "Unbond shares from a validator",
@@ -243,9 +242,9 @@ $ %s tx staking unbond cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj 100s
),
),
RunE: func(cmd *cobra.Command, args []string) error {
cliCtx := ctx.InitWithInput(cmd.InOrStdin())
clientCtx := clientCtx.InitWithInput(cmd.InOrStdin())
delAddr := cliCtx.GetFromAddress()
delAddr := clientCtx.GetFromAddress()
valAddr, err := sdk.ValAddressFromBech32(args[0])
if err != nil {
return err
@@ -261,20 +260,20 @@ $ %s tx staking unbond cosmosvaloper1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj 100s
return err
}
return tx.GenerateOrBroadcastTx(cliCtx, msg)
return tx.GenerateOrBroadcastTx(clientCtx, msg)
},
}
return cmd
}
func NewBuildCreateValidatorMsg(cliCtx context.CLIContext, txf tx.Factory) (tx.Factory, sdk.Msg, error) {
func NewBuildCreateValidatorMsg(clientCtx client.Context, txf tx.Factory) (tx.Factory, sdk.Msg, error) {
amount, err := sdk.ParseCoin(viper.GetString(FlagAmount))
if err != nil {
return txf, nil, err
}
valAddr := cliCtx.GetFromAddress()
valAddr := clientCtx.GetFromAddress()
pkStr := viper.GetString(FlagPubKey)
pk, err := sdk.GetPubKeyFromBech32(sdk.Bech32PubKeyTypeConsPub, pkStr)
@@ -408,7 +407,7 @@ func PrepareFlagsForTxCreateValidator(
}
// BuildCreateValidatorMsg makes a new MsgCreateValidator.
func BuildCreateValidatorMsg(cliCtx context.CLIContext, txBldr auth.TxBuilder) (auth.TxBuilder, sdk.Msg, error) {
func BuildCreateValidatorMsg(clientCtx client.Context, txBldr auth.TxBuilder) (auth.TxBuilder, sdk.Msg, error) {
amounstStr := viper.GetString(FlagAmount)
amount, err := sdk.ParseCoin(amounstStr)
@@ -416,7 +415,7 @@ func BuildCreateValidatorMsg(cliCtx context.CLIContext, txBldr auth.TxBuilder) (
return txBldr, nil, err
}
valAddr := cliCtx.GetFromAddress()
valAddr := clientCtx.GetFromAddress()
pkStr := viper.GetString(FlagPubKey)
pk, err := sdk.GetPubKeyFromBech32(sdk.Bech32PubKeyTypeConsPub, pkStr)