bitcoin/src/wallet
merge-script f9032a4abb
Merge bitcoin/bitcoin#31242: wallet, desc spkm: Return SigningProvider only if we have the privkey
f6a6d91205 test: add check for getting SigningProvider for a CPubKey (Sebastian Falbesoner)
62a95f5af9 test: refactor: move `CreateDescriptor` helper to wallet test util module (Sebastian Falbesoner)
493656763f desc spkm: Return SigningProvider only if we have the privkey (Ava Chow)

Pull request description:

  If we know about a pubkey that's in our descriptor, but we don't have the private key, don't return a SigningProvider for that pubkey.

  This is specifically an issue for Taproot outputs that use the H point as the resulting PSBTs may end up containing irrelevant information because the H point was detected as a pubkey each unrelated descriptor knew about.

  Split from #29675

ACKs for top commit:
  fjahr:
    ACK f6a6d91205
  theStack:
    re-ACK f6a6d91205
  furszy:
    utACK f6a6d91205. Only reviewed the actual change in detail, not the test commit.

Tree-SHA512: 30a196e611a0c5d9ebe5baf6d896caaa6af66f1615463dbb0c31e52604d53cf342922bb9967b3c697b47083d76b0485c77a5f545bd6381247c8bc44321c70f97
2025-01-16 17:30:36 +00:00
..
rpc refactor: Delay translation of _() literals 2025-01-14 19:21:37 +01:00
test Merge bitcoin/bitcoin#31242: wallet, desc spkm: Return SigningProvider only if we have the privkey 2025-01-16 17:30:36 +00:00
bdb.cpp scripted-diff: LogPrint -> LogDebug 2024-08-29 13:49:57 +02:00
bdb.h wallet: introduce active db txn listeners 2024-10-21 08:29:22 -03:00
CMakeLists.txt cmake: Add systemtap-sdt optional package support 2024-08-16 19:27:41 +01:00
coincontrol.cpp wallet: Explicitly preserve scriptSig and scriptWitness in CreateTransaction 2023-12-08 17:12:19 -05:00
coincontrol.h [wallet, rpc]: add max_tx_weight to tx funding options 2024-06-27 15:31:21 +01:00
coinselection.cpp Remove unused variable assignment 2024-12-13 21:00:07 -06:00
coinselection.h Merge bitcoin/bitcoin#29523: Wallet: Add max_tx_weight to transaction funding options (take 2) 2024-07-17 18:27:59 -04:00
context.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
context.h interfaces: Add schedulerMockForward method so mockscheduler RPC can work across processes 2023-10-20 10:30:16 -04:00
crypter.cpp refactor: vector -> span in CCrypter 2024-08-28 19:09:51 +02:00
crypter.h refactor: vector -> span in CCrypter 2024-08-28 19:09:51 +02:00
db.cpp Merge bitcoin/bitcoin#29071: refactor: Remove Span operator==, Use std::ranges::equal 2024-08-28 10:34:47 +01:00
db.h wallet: introduce active db txn listeners 2024-10-21 08:29:22 -03:00
dump.cpp bdb: Be able to make byteswapped databases 2024-05-16 15:03:13 -04:00
dump.h wallettool: Don't create CWallet when dumping DB 2023-12-19 16:54:06 -05:00
external_signer_scriptpubkeyman.cpp util: add TransactionError includes and namespace declarations 2024-05-16 10:16:08 -05:00
external_signer_scriptpubkeyman.h common: Add PSBTError enum 2024-05-16 10:16:08 -05:00
feebumper.cpp scripted-diff: Replace strprintf(Untranslated) with Untranslated(strprintf) 2024-12-04 15:09:05 -04:00
feebumper.h rpc: bumpfee, improve doc for 'reduce_output' arg 2023-09-26 20:17:02 -03:00
fees.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
fees.h
init.cpp scripted-diff: drop config/ subdir for bitcoin-config.h, rename to bitcoin-build-config.h 2024-10-10 12:22:12 +02:00
interfaces.cpp gui: Use wallet name for wallet migration rather than WalletModel 2024-08-13 11:25:38 -04:00
load.cpp refactor: Delay translation of _() literals 2025-01-14 19:21:37 +01:00
load.h interfaces: Add schedulerMockForward method so mockscheduler RPC can work across processes 2023-10-20 10:30:16 -04:00
migrate.cpp refactor: Drop unused UCharCast 2025-01-14 19:01:53 +01:00
migrate.h wallet: introduce active db txn listeners 2024-10-21 08:29:22 -03:00
receive.cpp [clang-tidy] Enable the misc-no-recursion check 2024-04-07 14:04:45 +01:00
receive.h wallet: Add wallet/types.h for simple public enum and struct types 2023-04-11 15:52:25 -04:00
salvage.cpp scripted-diff: Replace strprintf(Untranslated) with Untranslated(strprintf) 2024-12-04 15:09:05 -04:00
salvage.h refactor: Move fs.* to util/fs.* 2023-03-23 12:55:18 +01:00
scriptpubkeyman.cpp Merge bitcoin/bitcoin#31242: wallet, desc spkm: Return SigningProvider only if we have the privkey 2025-01-16 17:30:36 +00:00
scriptpubkeyman.h Merge bitcoin/bitcoin#31242: wallet, desc spkm: Return SigningProvider only if we have the privkey 2025-01-16 17:30:36 +00:00
spend.cpp tracing: only prepare tracepoint args if attached 2024-10-28 14:27:47 +01:00
spend.h refactor: pass CRecipient to FundTransaction 2024-01-19 15:04:56 +01:00
sqlite.cpp scripted-diff: Rename PACKAGE_* variables to CLIENT_* 2024-10-28 12:36:19 +00:00
sqlite.h wallet: introduce active db txn listeners 2024-10-21 08:29:22 -03:00
transaction.cpp scripted-diff: wallet: s/TxStateConflicted/TxStateBlockConflicted 2024-03-14 17:38:39 -04:00
transaction.h util: Move util/string.h functions to util namespace 2024-05-16 10:16:08 -05:00
types.h util: move error.h TransactionError enum to node/types.h 2024-05-16 10:16:08 -05:00
wallet.cpp refactor: Delay translation of _() literals 2025-01-14 19:21:37 +01:00
wallet.h Merge bitcoin/bitcoin#28724: wallet: Cleanup accidental encryption keys in watchonly wallets 2025-01-10 15:29:47 +00:00
walletdb.cpp Merge bitcoin/bitcoin#28724: wallet: Cleanup accidental encryption keys in watchonly wallets 2025-01-10 15:29:47 +00:00
walletdb.h Merge bitcoin/bitcoin#28724: wallet: Cleanup accidental encryption keys in watchonly wallets 2025-01-10 15:29:47 +00:00
wallettool.cpp scripted-diff: Rename PACKAGE_* variables to CLIENT_* 2024-10-28 12:36:19 +00:00
wallettool.h
walletutil.cpp descriptors: Change Parse to return vector of descriptors 2024-08-08 12:47:22 -04:00
walletutil.h Merge bitcoin/bitcoin#22838: descriptors: Be able to specify change and receiving in a single descriptor string 2024-08-28 15:56:15 +01:00