Repository navigation
backport: v0.26 bitcoin#25634 - #86
DCG-Claude wants to merge 1 commit into
Conversation
…llet flag should be un/set cdba23d wallet: Document blank flag use in descriptor wallets (Ryan Ofsky) 4331020 wallet: Ensure that the blank wallet flag is unset after imports (Andrew Chow) e9379f1 rpc, wallet: Include information about blank flag (Andrew Chow) Pull request description: The `blank` wallet flag is used to indicate that the wallet intentionally does not have any keys, scripts, or descriptors, and it prevents the automatic generation of those things for such a wallet. Once the wallet contains any of those data, it is unnecessary, and possibly incorrect, to have `blank` set. This PR fixes a few places where this was not properly happening. It also adds a test for this unset behavior. ACKs for top commit: S3RK: reACK cdba23d ryanofsky: Code review ACK cdba23d. Only change since last review is dropping the commit which makes createwallet RPC set BLANK flag automatically when DISABLE_PRIVATE_KEYS flag is set Tree-SHA512: 85bc2a9754df0531575d5c8f4ad7e8f38dcd50083dc29b3283dacf56feae842e81f34654c5e1781f2dadb0560ff80e454bbc8ca3b2d1fab1b236499ae9abd7da Dash adaptations: - test/functional/test_runner.py: Dash has 'rpc_quorum.py' right after the wallet_hd.py entries, where upstream inserts wallet_blank.py; kept both, with the two wallet_blank.py entries after wallet_hd.py as upstream does and rpc_quorum.py after them - test/functional/wallet_blank.py: test_encrypt_legacy checks that 'hdchainid' is absent from getwalletinfo instead of upstream's 'hdseedid'; Dash's getwalletinfo reports the HD chain as hdchainid and has no hdseedid, so the upstream check would always pass and test nothing
e1c12b8 to
e5c3a31
Compare
wallet_createwallet.py --legacy-wallet failed in all three jobs because bitcoin#25634 now clears the blank flag when importprivkey runs on an unencrypted wallet, and Dash's legacy CanGenerateKeys() only checks the blank and disable-private-keys flags, so getnewaddress then makes a non-HD key instead of failing. I changed the test expectation: legacy mode now checks that getwalletinfo()['blank'] is False, and descriptor mode keeps the upstream assertion. I could not run the test locally because the tree is not configured here. (folded into the 🤖 backportsys, on behalf of the Dash backport pipeline. |
Automated Bitcoin Core v0.26 backports, batch
backport-0.26-b066-misc.e5c3a31c17Provenance
Each commit passed: cherry-pick (adapted by an Opus lane only where conflicts existed), build, touched tests, a mechanical diff-of-diffs check (every upstream hunk landed; no added line without an upstream counterpart), and an independent Opus verification lane where anything was adapted. Gate rows and lane artifacts are in the backportsys DB.