cmd/lncli: add changepassword command
This commit is contained in:
parent
58a3419283
commit
4e2ae89219
@ -1382,6 +1382,66 @@ func unlock(ctx *cli.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
var changePasswordCommand = cli.Command{
|
||||
Name: "changepassword",
|
||||
Category: "Startup",
|
||||
Usage: "Change an encrypted wallet's password at startup.",
|
||||
Description: `
|
||||
The changepassword command is used to Change lnd's encrypted wallet's
|
||||
password. It will automatically unlock the daemon if the password change
|
||||
is successful.
|
||||
|
||||
If one did not specify a password for their wallet (running lnd with
|
||||
--noencryptwallet), one must restart their daemon without
|
||||
--noencryptwallet and use this command. The "current password" field
|
||||
should be left empty.
|
||||
`,
|
||||
Action: actionDecorator(changePassword),
|
||||
}
|
||||
|
||||
func changePassword(ctx *cli.Context) error {
|
||||
ctxb := context.Background()
|
||||
client, cleanUp := getWalletUnlockerClient(ctx)
|
||||
defer cleanUp()
|
||||
|
||||
fmt.Printf("Input current wallet password: ")
|
||||
currentPw, err := terminal.ReadPassword(int(syscall.Stdin))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println()
|
||||
|
||||
fmt.Printf("Input new wallet password: ")
|
||||
newPw, err := terminal.ReadPassword(int(syscall.Stdin))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println()
|
||||
|
||||
fmt.Printf("Confirm new wallet password: ")
|
||||
confirmPw, err := terminal.ReadPassword(int(syscall.Stdin))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println()
|
||||
|
||||
if !bytes.Equal(newPw, confirmPw) {
|
||||
return fmt.Errorf("passwords don't match")
|
||||
}
|
||||
|
||||
req := &lnrpc.ChangePasswordRequest{
|
||||
CurrentPassword: currentPw,
|
||||
NewPassword: newPw,
|
||||
}
|
||||
|
||||
_, err = client.ChangePassword(ctxb, req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
var walletBalanceCommand = cli.Command{
|
||||
Name: "walletbalance",
|
||||
Category: "Wallet",
|
||||
|
@ -194,6 +194,7 @@ func main() {
|
||||
app.Commands = []cli.Command{
|
||||
createCommand,
|
||||
unlockCommand,
|
||||
changePasswordCommand,
|
||||
newAddressCommand,
|
||||
sendManyCommand,
|
||||
sendCoinsCommand,
|
||||
|
Loading…
Reference in New Issue
Block a user