HomePhabricator

[backport#17537] wallet: Cleanup and move opportunistic and superfluous TopUp()s

Description

[backport#17537] wallet: Cleanup and move opportunistic and superfluous TopUp()s

Summary:
6e77a7b65cda1b46ce42f0c99ca91562255aeb28 keypool: Add comment about TopUp and when to use it (Andrew Chow)
ea50e34b287e0da0806c1116bb55ade730e8ff6c keypool: Move opportunistic TopUps from LegacyScriptPubKeyMan to CWallet and ReserveDestination (Andrew Chow)
bb2c8ce23c9d7ba8d0e5538243e07218443c85b4 keypool: Remove superfluous topup from CWallet::GetNewChangeDestination (Andrew Chow)

Pull request description:

  • The TopUp() in CWallet::GetNewChangeDestination is unnecessary as currently m_spk_man calls TopUp further down the call stack inside LegacyScriptPubKeyMan::ReserveKeyFromKeyPool (called by LegacyScriptPubKeyMan::GetReservedDestination). This also lets us prepare for future changes with multiple ScriptPubKeyMans in the wallet.
  • An opportunistic TopUp() is moved from LegacyScriptPubKeyMan::GetNewDestination to CWallet::GetNewDestination.
  • Another opportunistic TopUp() is moved from LegacyScriptPubKeyMan::ReserveKeyFromKeyPool

    Moving opportunistic TopUps ensures that ScriptPubKeyMans will always be topped up before requesting Destinations from them as we cannot always rely on future ScriptPubKeyMan implementaions topping up internally.

    See also: https://github.com/bitcoin/bitcoin/pull/17373#discussion_r348598174

Backport of Core PR17537

Test Plan:

ninja all check check-functional

Reviewers: #bitcoin_abc, Fabien

Reviewed By: #bitcoin_abc, Fabien

Differential Revision: https://reviews.bitcoinabc.org/D7722

Details

Provenance
fanquake <fanquake@gmail.com>Authored on Dec 17 2019, 16:50
majcostaCommitted on Oct 1 2020, 20:29
majcostaPushed on Oct 1 2020, 20:29
Reviewer
Restricted Project
Differential Revision
D7722: [backport#17537] wallet: Cleanup and move opportunistic and superfluous TopUp()s
Parents
rABCb615bbcd0a74: [backport#17578] rpc: simplify getaddressinfo labels, deprecate previous…
Branches
Unknown
Tags
Unknown