Drop on-disk keybase in favor of keyring (#5180)
* Switch keys commands to keyring
* Replace NewKeybase with NewKeyring
* Fix delete test
* Purge dead code
* Override COSMOS_SDK_TEST_KEYRING envvar to switch to a test keyring
* s/unningOnServer/unningUnattended/
C'ing @tnachen
* Add deprecated warning, output looks like the following:
```
$ gaiacli keys update --help
Command "update" is deprecated, it takes no effect with the new keyring
based backend and is provided only for backward compatibility with the
legacy LevelDB based backend.
Refer to your operating system's manual to learn how to change your
keyring's password.
Change the password used to protect private key
Usage:
gaiacli keys update <name> [flags]
Flags:
-h, --help help for update
Global Flags:
--chain-id string Chain ID of tendermint node
-e, --encoding string Binary encoding (hex|b64|btc) (default "hex")
--home string directory for config and data (default "/home/alessio/.gaiacli")
-o, --output string Output format (text|json) (default "text")
--trace print out full stack trace on errors
```
* Update multisign command
* Modify server.GenerateSaveCoinKey()
* GenerateSaveCoinKey more modifications
* Update docs
* Update upgrade module
This commit is contained in:
committed by
Federico Kunze
parent
1285782ef6
commit
d4c831e63a
+34
-10
@@ -27,6 +27,7 @@ type CLIContext struct {
|
||||
Client rpcclient.Client
|
||||
ChainID string
|
||||
Keybase cryptokeys.Keybase
|
||||
Input io.Reader
|
||||
Output io.Writer
|
||||
OutputFormat string
|
||||
Height int64
|
||||
@@ -45,18 +46,18 @@ type CLIContext struct {
|
||||
SkipConfirm bool
|
||||
}
|
||||
|
||||
// NewCLIContextWithFrom returns a new initialized CLIContext with parameters from the
|
||||
// command line using Viper. It takes a key name or address and populates the FromName and
|
||||
// FromAddress field accordingly. It will also create Tendermint verifier using
|
||||
// the chain ID, home directory and RPC URI provided by the command line. If using
|
||||
// a CLIContext in tests or any non CLI-based environment, the verifier will not
|
||||
// be created and will be set as nil because FlagTrustNode must be set.
|
||||
func NewCLIContextWithFrom(from string) CLIContext {
|
||||
// NewCLIContextWithInputAndFrom returns a new initialized CLIContext with parameters from the
|
||||
// command line using Viper. It takes a io.Reader and and key name or address and populates
|
||||
// the FromName and FromAddress field accordingly. It will also create Tendermint verifier
|
||||
// using the chain ID, home directory and RPC URI provided by the command line. If using
|
||||
// a CLIContext in tests or any non CLI-based environment, the verifier will not be created
|
||||
// and will be set as nil because FlagTrustNode must be set.
|
||||
func NewCLIContextWithInputAndFrom(input io.Reader, from string) CLIContext {
|
||||
var nodeURI string
|
||||
var rpc rpcclient.Client
|
||||
|
||||
genOnly := viper.GetBool(flags.FlagGenerateOnly)
|
||||
fromAddress, fromName, err := GetFromFields(from, genOnly)
|
||||
fromAddress, fromName, err := GetFromFields(input, from, genOnly)
|
||||
if err != nil {
|
||||
fmt.Printf("failed to get from fields: %v", err)
|
||||
os.Exit(1)
|
||||
@@ -72,6 +73,7 @@ func NewCLIContextWithFrom(from string) CLIContext {
|
||||
ctx := CLIContext{
|
||||
Client: rpc,
|
||||
ChainID: viper.GetString(flags.FlagChainID),
|
||||
Input: input,
|
||||
Output: os.Stdout,
|
||||
NodeURI: nodeURI,
|
||||
From: viper.GetString(flags.FlagFrom),
|
||||
@@ -99,10 +101,32 @@ func NewCLIContextWithFrom(from string) CLIContext {
|
||||
return ctx.WithVerifier(verifier)
|
||||
}
|
||||
|
||||
// NewCLIContextWithFrom returns a new initialized CLIContext with parameters from the
|
||||
// command line using Viper. It takes a key name or address and populates the FromName and
|
||||
// FromAddress field accordingly. It will also create Tendermint verifier using
|
||||
// the chain ID, home directory and RPC URI provided by the command line. If using
|
||||
// a CLIContext in tests or any non CLI-based environment, the verifier will not
|
||||
// be created and will be set as nil because FlagTrustNode must be set.
|
||||
func NewCLIContextWithFrom(from string) CLIContext {
|
||||
return NewCLIContextWithInputAndFrom(os.Stdin, from)
|
||||
}
|
||||
|
||||
// NewCLIContext returns a new initialized CLIContext with parameters from the
|
||||
// command line using Viper.
|
||||
func NewCLIContext() CLIContext { return NewCLIContextWithFrom(viper.GetString(flags.FlagFrom)) }
|
||||
|
||||
// NewCLIContextWithInput returns a new initialized CLIContext with a io.Reader and parameters
|
||||
// from the command line using Viper.
|
||||
func NewCLIContextWithInput(input io.Reader) CLIContext {
|
||||
return NewCLIContextWithInputAndFrom(input, viper.GetString(flags.FlagFrom))
|
||||
}
|
||||
|
||||
// WithInput returns a copy of the context with an updated input.
|
||||
func (ctx CLIContext) WithInput(r io.Reader) CLIContext {
|
||||
ctx.Input = r
|
||||
return ctx
|
||||
}
|
||||
|
||||
// WithCodec returns a copy of the context with an updated codec.
|
||||
func (ctx CLIContext) WithCodec(cdc *codec.Codec) CLIContext {
|
||||
ctx.Codec = cdc
|
||||
@@ -229,7 +253,7 @@ func (ctx CLIContext) PrintOutput(toPrint interface{}) error {
|
||||
// GetFromFields returns a from account address and Keybase name given either
|
||||
// an address or key name. If genOnly is true, only a valid Bech32 cosmos
|
||||
// address is returned.
|
||||
func GetFromFields(from string, genOnly bool) (sdk.AccAddress, string, error) {
|
||||
func GetFromFields(input io.Reader, from string, genOnly bool) (sdk.AccAddress, string, error) {
|
||||
if from == "" {
|
||||
return nil, "", nil
|
||||
}
|
||||
@@ -243,7 +267,7 @@ func GetFromFields(from string, genOnly bool) (sdk.AccAddress, string, error) {
|
||||
return addr, "", nil
|
||||
}
|
||||
|
||||
keybase, err := keys.NewKeyBaseFromHomeFlag()
|
||||
keybase, err := keys.NewKeyringFromHomeFlag(input)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user