Skip to content

Commit

Permalink
wallet: update passphrase user experience.
Browse files Browse the repository at this point in the history
For users don't want to set/manage a passphrase a default passphrase
"passphrase" will be used during wallet creation.

At startup, the wallet tries to unlock itself using the default
passphrase, or a user provided one (using -p).

Users that prefer a passphrase can override the default one at wallet
creation time using -p, or use the walletpassphrase rpc when
the wallet is running. This will prevent the wallet from auto-unlock,
and preserve the lock-by-default behavior.
  • Loading branch information
roylee17 committed Nov 1, 2022
1 parent 3aca0be commit 1fa143f
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 7 deletions.
2 changes: 1 addition & 1 deletion config.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ type config struct {
DBTimeout time.Duration `long:"dbtimeout" description:"The timeout value to use when opening the wallet database."`

// Passphrase options
Passphrase string `short:"p" long:"passphrase" default-mask:"-" description:"The wallet passphrase (default: \"insecurepassphrase\")"`
Passphrase string `short:"p" long:"passphrase" default-mask:"-" description:"The wallet passphrase (default: \"passphrase\")"`

// RPC client options
RPCConnect string `short:"c" long:"rpcconnect" description:"Hostname/IP and port of lbcd RPC server to connect to (default localhost:9245, testnet: localhost:19245, regtest: localhost:29245)"`
Expand Down
5 changes: 5 additions & 0 deletions lbcwallet.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@ func walletMain() error {

loader.RunAfterLoad(func(w *wallet.Wallet) {
startWalletRPCServices(w, legacyRPCServer)
log.Infof("Unlocking wallet with the default or specified passphrase...")
err = w.Unlock([]byte(cfg.Passphrase), nil)
if err != nil {
log.Infof("Unable to unlock wallet: %v", err)
}
})

_, err = loader.OpenExistingWallet()
Expand Down
9 changes: 3 additions & 6 deletions walletsetup.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,9 @@ func createWallet(cfg *config) error {
)

// Start by prompting for the passphrase.
reader := bufio.NewReader(os.Stdin)
privPass, err := prompt.Passphrase(true)
if err != nil {
return err
}
passphrase := []byte(cfg.Passphrase)

reader := bufio.NewReader(os.Stdin)
// Ascertain the wallet generation seed. This will either be an
// automatically generated value the user has already confirmed or a
// value the user has entered which has already been validated.
Expand All @@ -61,7 +58,7 @@ func createWallet(cfg *config) error {
}

fmt.Println("Creating the wallet...")
w, err := loader.CreateNewWallet(privPass, seed, bday)
w, err := loader.CreateNewWallet(passphrase, seed, bday)
if err != nil {
return err
}
Expand Down

0 comments on commit 1fa143f

Please sign in to comment.