From ad87ca38fda395351cbaf5491b9f64e0d4ae4f88 Mon Sep 17 00:00:00 2001 From: luke Date: Mon, 16 Aug 2021 16:43:36 -0500 Subject: [PATCH] politeiavoter: Update prompt pass placement. This diff moves the dcrwallet password prompt to the begining of the voting function so that the user does not have to wait for the expensive O(n) wallet calls to complete in order to input their password. It also adds in a dcrwallet call that verifies the password is correct. This patch was submitted by moo31337. --- .../cmd/politeiavoter/politeiavoter.go | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/politeiawww/cmd/politeiavoter/politeiavoter.go b/politeiawww/cmd/politeiavoter/politeiavoter.go index 75a6ed088..408b2eedc 100644 --- a/politeiawww/cmd/politeiavoter/politeiavoter.go +++ b/politeiawww/cmd/politeiavoter/politeiavoter.go @@ -861,6 +861,20 @@ exit: } func (c *ctx) _vote(token, voteID string) error { + passphrase, err := c.walletPassphrase() + if err != nil { + return err + } + // This assumes the account is an HD account. + _, err = c.wallet.GetAccountExtendedPrivKey(c.wctx, + &pb.GetAccountExtendedPrivKeyRequest{ + AccountNumber: 0, // TODO: make a config flag + Passphrase: passphrase, + }) + if err != nil { + return err + } + seed, err := generateSeed() if err != nil { return err @@ -954,11 +968,6 @@ func (c *ctx) _vote(token, voteID string) error { } ctres.TicketAddresses = eligible - passphrase, err := c.walletPassphrase() - if err != nil { - return err - } - // Sign all tickets sm := &pb.SignMessagesRequest{ Passphrase: passphrase,