* Add new account bech32 prefixes with godocs * Restructure spacing of existing account code * Update account godocs * More account godoc updates + new tm pub/addr helpers * Update validator type to use new account types/bech32 prefixes * Fix account documentation errors * Update Bech32 prefix for consensus nodes * Update Bech32 spec doc * Fix account type tests * Add missing account consensus functions, clear up godocs, and fix tests * Add to TestRandBech32PubkeyConsistency check * Update initialization of validator public keys * Update query signing info command * Implement new ConsAddress type with associated unit tests * [WIP] Update stake and slashing parameters * Update all calls to MustBech32ifyValPub * [WIP] Validator operator API updates * [WIP] Fix and update unit tests * Fix gov logs (helping to debug failing tests) * Fix gov tally * Fix all broken x/ unit tests * Update gaia app genesis address logic * Fix linting errors * Fix broken LCD tests * Fix broken CLI tests * Implement command to get validator address and pubkey from key name * Add support for getting validator key information via REST endpoint * Update PENDING log * Update docs * Revert GaiaGenTx.PubKey bech32 prefix * Fix broken docs and cli tests * Update genesis to use correct Bech32 (cons) prefix for pubkeys * Update docs and unit tests to reflect new cosmos account bech32 prefix * minor formatting
60 lines
1.4 KiB
Go
60 lines
1.4 KiB
Go
package cli
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/spf13/cobra"
|
|
"github.com/spf13/viper"
|
|
"github.com/tendermint/tendermint/libs/cli"
|
|
|
|
"github.com/cosmos/cosmos-sdk/client/context"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/cosmos/cosmos-sdk/wire" // XXX fix
|
|
"github.com/cosmos/cosmos-sdk/x/slashing"
|
|
)
|
|
|
|
// GetCmdQuerySigningInfo implements the command to query signing info.
|
|
func GetCmdQuerySigningInfo(storeName string, cdc *wire.Codec) *cobra.Command {
|
|
cmd := &cobra.Command{
|
|
Use: "signing-info [validator-pubkey]",
|
|
Short: "Query a validator's signing information",
|
|
Args: cobra.ExactArgs(1),
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
pk, err := sdk.GetConsPubKeyBech32(args[0])
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
key := slashing.GetValidatorSigningInfoKey(sdk.ValAddress(pk.Address()))
|
|
cliCtx := context.NewCLIContext().WithCodec(cdc)
|
|
|
|
res, err := cliCtx.QueryStore(key, storeName)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
signingInfo := new(slashing.ValidatorSigningInfo)
|
|
cdc.MustUnmarshalBinary(res, signingInfo)
|
|
|
|
switch viper.Get(cli.OutputFlag) {
|
|
|
|
case "text":
|
|
human := signingInfo.HumanReadableString()
|
|
fmt.Println(human)
|
|
|
|
case "json":
|
|
// parse out the signing info
|
|
output, err := wire.MarshalJSONIndent(cdc, signingInfo)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
fmt.Println(string(output))
|
|
}
|
|
|
|
return nil
|
|
},
|
|
}
|
|
|
|
return cmd
|
|
}
|