-
Notifications
You must be signed in to change notification settings - Fork 37.4k
wallet: Use util::Error
throughout AddWalletDescriptor
instead of returning nullptr
for some errors
#32475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
wallet: Use util::Error
throughout AddWalletDescriptor
instead of returning nullptr
for some errors
#32475
Conversation
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code Coverage & BenchmarksFor details see: https://corecheck.dev/bitcoin/bitcoin/pulls/32475. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
/Users/runner/work/bitcoin/bitcoin/src/wallet/test/wallet_tests.cpp:69:10: error: unused variable 'spk_manager' [-Werror,-Wunused-variable]
auto spk_manager = *Assert(wallet.AddWalletDescriptor(w_desc, provider, "", false));
^
1 error generated. |
6629464
to
f17945b
Compare
CI should be fixed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK f17945b
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code review ACK f17945b
Interesting that no CI job was failing. It smells we need more tests.
f17945b
to
218db39
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Concept ACK 218db39
32023 changed AddWalletDescriptor to return util::Error, but did not change all of the failure cases to do so. This may result in some callers continuing when there was actually an error. Unify all of the failure cases to use util::Error so that all callers handle AddWalletDescriptor errors in the same way. The encapsulated return type is changed from ScriptPubKeyMan* to std::reference_wrapper<DescriptorScriptPubKeyMan>. This avoids having a value that can be interpreted as a bool, and also removes the need to constantly dynamic_cast the returned value. The only kind of ScriptPubKeyMan that can come out of AddWalletDescriptor is a DescriptorScriptPubKeyMan anyways.
218db39
to
785e140
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code review ACK 785e140
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Concept ACK
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code review ACK 785e140
utACK 785e140 |
…417e0b3b1b0 1417e0b3b1b0 kernel: Fix bitcoin-chainstate for windows 4f07590a8bd6 kernel: Add Purpose section to header documentation 58c01a82c163 kernel: Add pure kernel bitcoin-chainstate 0416a292f545 kernel: Add functions to get the block hash from a block 8d25dfd1b2a2 kernel: Add block index utility functions to C header eacf99dd3c28 kernel: Add function to read block undo data from disk to C header 3c012048c2f1 kernel: Add functions to read block from disk to C header 85f5264462e0 kernel: Add function for copying block data to C header f136ca589153 kernel: Add functions for the block validation state to C header 9d7e19ee522d kernel: Add validation interface to C header 51555301a882 kernel: Add interrupt function to C header 61c4ac9c8e1f kernel: Add import blocks function to C header 4153ab77084e kernel: Add chainstate load options for in-memory dbs in C header cb128288a0d9 kernel: Add options for reindexing in C header 7ead2a92be50 kernel: Add block validation to C header 9262ce715448 kernel: Add chainstate loading when instantiating a ChainstateManager 594b060da476 kernel: Add chainstate manager option for setting worker threads 7384b7325d5f kernel: Add chainstate manager object to C header 7920e23c22b8 kernel: Add notifications context option to C header c0a86769e784 kernel: Add chain params context option to C header 3769d12882f9 kernel: Add kernel library context object f7b435493bd7 kernel: Add logging to kernel library C header 62d0122c7ed0 kernel: Introduce initial kernel C header API 88b22acc3d6f Merge bitcoin/bitcoin#32528: rpc: Round verificationprogress to 1 for a recent tip aee7cec0db8f Merge bitcoin/bitcoin#32364: refactor: validation: mark CheckBlockIndex as const ce4600071243 Merge bitcoin/bitcoin#32509: qa: feature_framework_startup_failures.py fixes & improvements (#30660 follow-up) d21612fc4b77 Merge bitcoin/bitcoin#32404: log: print reason when writing chainstate 9bd9aee5a656 Merge bitcoin/bitcoin#32487: blocks: avoid recomputing block header hash in `ReadBlock` 4173805a15c1 Merge bitcoin/bitcoin#32623: test: Add missing ipc subtree to lint 012f347685b8 Merge bitcoin/bitcoin#31375: multiprocess: Add bitcoin wrapper executable 38ad8027a26f Merge bitcoin/bitcoin#32439: guix: accomodate migration to codeberg fa4b8b16c378 test: Add missing ipc subtree to lint f7cc7f6468af Merge bitcoin/bitcoin#32591: test: fix and augment block tests of invalid_txs 87860143be79 Merge bitcoin/bitcoin#32270: test: fix pushdata scripts c8d9baae942c guix: accomodate migration to codeberg 09ee8b7f2786 node: avoid recomputing block hash in `ReadBlock` 2bf173210fa1 test: exercise `ReadBlock` hash‑mismatch path fab1e02086ce refactor: Pass verification_progress into block tip notifications 638a4c0bd8b5 Merge bitcoin/bitcoin#32596: wallet, rpc, doc: various legacy wallet removal cleanups in RPCs 53e9b71b2fd5 log: print reason for why should_write was triggered in `FlushStateToDisk` e5cbea416b2f rpc: doc: remove redundant "descriptors" parameter in `createwallet` examples 7a05f941bb2c rpc: doc: drop descriptor wallet mentions in fast wallet rescan related RPCs db465a50e23d wallet, rpc: remove obsolete "keypoololdest" result field/code 2df824f4e62b Merge bitcoin/bitcoin#32586: ci: Downgrade DEBUG=1 to -D_GLIBCXX_ASSERTIONS in centos task 0a8ab559514f Merge bitcoin/bitcoin#32467: checkqueue: make the queue non-optional for CCheckQueueControl and drop legacy locking macro usage 8fcd68450523 test: ensure reason is checked for invalid blocks rejection 1a689a2c8871 test: fix block tests of invalid_txs d2c9fc84e171 Merge bitcoin/bitcoin#32533: test: properly check for per-tx sigops limit fa079538e32d ci: Downgrade DEBUG=1 to -D_GLIBCXX_ASSERTIONS in centos task 35bf3f88398d Merge bitcoin/bitcoin#32400: random: Use modern Windows randomness functions a42faa25d8f7 Merge bitcoin/bitcoin#32551: cmake: Remove `ENABLE_{SSE41,AVX2,X86_SHANI,ARM_SHANI}` from `bitcoin-build-config.h` 87ec923d3a7a Merge bitcoin/bitcoin#32475: wallet: Use `util::Error` throughout `AddWalletDescriptor` instead of returning `nullptr` for some errors 7763e86afa04 Merge bitcoin/bitcoin#32573: ci: Avoid && dropping errors 0a56ed1ac868 Merge bitcoin/bitcoin#32567: subprocess: Backport upstream changes 54e406a3055a Merge bitcoin/bitcoin#32459: qt: drop unused watch-only functionality ec8120469430 Merge bitcoin/bitcoin#31622: psbt: add non-default sighash types to PSBTs and unify sighash type match checking fab97f583f11 ci: Avoid && dropping errors 9a887baadebc Merge bitcoin/bitcoin#32344: Wallet: Fix Non-Ranged Descriptors with Range [0,0] Trigger Unexpected Wallet Errors in AddWalletDescriptor 26fba39bda47 Merge bitcoin/bitcoin#32466: threading: drop CSemaphore in favor of c++20 std::counting_semaphore 878556947b0d Merge bitcoin/bitcoin#32333: doc: Add missing top-level description to pruneblockchain RPC fd290730f530 validation: clean up and clarify CheckInputScripts logic fad009af49c4 Merge bitcoin/bitcoin#32520: Remove legacy `Parse(U)Int*` f66b14d2ecb0 test: fix pushdata scripts 0f9baba0fb6e Merge bitcoin/bitcoin#29868: Reintroduce external signer support for Windows cf2cbfac6599 Merge bitcoin/bitcoin#32553: wallet: Fix logging of wallet version bc4b04c5bfb4 Merge bitcoin/bitcoin#31864: doc: add missing copyright headers e63a7034f038 subprocess: Don't add an extra whitespace at end of Windows command line 800b7cc42ca6 cmake: Add missed `SSE41_CXXFLAGS` 028476e71fdc cmake: Remove `ENABLE_ARM_SHANI` from `bitcoin-build-config.h` 1e900528d245 cmake: Remove `ENABLE_X86_SHANI` from `bitcoin-build-config.h` 8689628e2e36 cmake: Remove `ENABLE_AVX2` from `bitcoin-build-config.h` a8e2342dca5e cmake: Remove `ENABLE_SSE41` from `bitcoin-build-config.h` fa76b378e4b2 rpc: Round verificationprogress to exactly 1 for a recent tip faf6304bdfdf test: Use mockable time in GuessVerificationProgress c7c3bfadfc6e doc: add & amend copyright headers f667000c83e7 contrib: remove outdated entries from copyright_header.py 0817f2d6cf52 doc: update MIT license URL 6854497b47ce contrib: remove GPL-3+ from debian/copyright af65fd1a3330 Merge bitcoin/bitcoin#32560: ci: Move DEBUG=1 to centos task 548f6b8cdef5 Merge bitcoin/bitcoin#32562: doc: remove // for ... comments 7c87a0e3fb1b Merge bitcoin/bitcoin#32477: lint: Check for missing trailing newline faf55fc80b11 doc: Remove ParseInt mentions in documentation 785e1407b0a3 wallet: Use util::Error throughout AddWalletDescriptor 1a3750789540 validation: use a lock for CCheckQueueControl c3b0e6c7f482 validation: make CCheckQueueControl's CCheckQueue non-optional 4c8c90b5567a validation: only create a CCheckQueueControl if it's actually going to be used 11fed833b3ed threading: add LOCK_ARGS macro 33f8f8ae4ced Merge bitcoin/bitcoin#30221: wallet: Ensure best block matches wallet scan state 7054d24f119a Merge bitcoin-core/gui#875: Use WitnessV0KeyHash in TestAddAddressesToSendBook 4272966d0234 Merge bitcoin/bitcoin#32423: rpc: Undeprecate rpcuser/rpcpassword, store all credentials hashed in memory 7193245cd667 doc: remove For ... comments 33332829333b refactor: Remove unused Parse(U)Int* 1b9cdc933f6c net: drop win32 ifdef 19ba499b1f38 init: cerrno is used on all platforms fa982f142544 Use WitnessV0KeyHash in TestAddAddressesToSendBook fa58d6cdab00 ci: Move DEBUG=1 to centos task ff1ee102c4ba Merge bitcoin/bitcoin#32561: doc: Adjust stale MSVC bug url fa330a5e38a8 doc: Adjust stale MSVC bug url 88791fb97bc3 Merge bitcoin/bitcoin#32544: scripted-diff: test: remove 'descriptors=True' argument for `createwallet` calls e8661aac752e wallet: drop watch-only things from interface e99188e7daa1 qt: drop unused watch-only functionality 4b2cd0b41ff4 test: check that creating a wallet does not log version info 39a483c8e9dc test: Check that the correct versions are logged on wallet load 359ecd370499 walletdb: Log the wallet version after it has been read from disk 86de8c166800 scripted-diff: test: remove 'descriptors=True' argument for `createwallet` calls 7710a31f0cb6 Merge bitcoin/bitcoin#32452: test: Remove legacy wallet RPC overloads b81e5076aa56 Merge bitcoin/bitcoin#32514: scripted-diff: Remove unused leading newline in RPC docs 3023d7e6ad52 Merge bitcoin/bitcoin#32534: Update leveldb subtree to latest upstream fa84e6c36cb0 bitcoin-tx: Reject + sign in MutateTxDel* face2519fac9 bitcoin-tx: Reject + sign in vout parsing fa8acaf0b993 bitcoin-tx: Reject + sign in replaceable parsing faff25a558ab bitcoin-tx: Reject + sign in locktime dddd9e5fe38b bitcoin-tx: Reject + sign in nversion parsing fab06ac03788 rest: Use SAFE_CHARS_URI in SanitizeString error msg c461d1528758 Merge bitcoin/bitcoin#32511: refactor: bdb removals b15c386933eb Merge bitcoin/bitcoin#32519: ci: Enable feature_init and wallet_reorgsrestore in valgrind task 7015052eba23 build: remove Wsuggest-override suppression from leveldb build 7bc64a8859c3 test: properly check for per-tx sigops limit 3f83c744ac28 Merge bitcoin/bitcoin#32526: fuzz: Delete wallet_notifications fa1f10a49e7c doc: Fix minor typos in rpc help 0769c8fc999f Update leveldb subtree to latest upstream e2c84b896fad Squashed 'src/leveldb/' changes from 4188247086..113db4962b 04c6c961b657 Merge bitcoin/bitcoin#32527: test: Remove unused verify_flags suppression 742b30549fc9 Merge bitcoin/bitcoin#32491: build: document why we check for `std::system` fab5a3c803c7 test: Remove unused verify_flags suppression c521192d8b9e Merge bitcoin/bitcoin#32485: Update minisketch subtree 3afde679c3b2 Merge bitcoin/bitcoin#32296: refactor: reenable `implicit-integer-sign-change` check for `serialize.h` 5af757bb7841 Merge bitcoin/bitcoin#32505: depends: bump to latest config.guess and config.sub c60455a6458c Merge bitcoin/bitcoin#32500: init: drop `-upnp` e230affaa321 Merge bitcoin/bitcoin#32396: cmake: Add application manifests when cross-compiling for Windows 51be79c42b7e Merge bitcoin/bitcoin#32238: qt, wallet: Convert uint256 to Txid f96ae941a1db Merge bitcoin/bitcoin#32525: build: Revert "Temporarily disable compiling `fuzz/utxo_snapshot.cpp` with MSVC fad2faf6c5d8 fuzz: Delete wallet_notifications bf950c4544d3 qa: Improve suppressed errors output 075352ec8e57 qa: assert_raises_message() - search in str(e) bd8ebbc4ab6a qa: Make --timeout-factor=0 result in a smaller factor fa2c66236267 build: Revert "Temporarily disable compiling `fuzz/utxo_snapshot.cpp` with MSVC" 8888bb499dec rest: Reject + sign in /blockhashbyheight/ fafd43c69192 test: Reject + sign when parsing regtest deployment params fa123afa0ef7 Reject + sign when checking -ipcfd fa479857ed23 Reject + sign in SplitHostPort fab4c2967d55 net: Reject + sign when parsing subnet mask fa89652e68fc init: Reject + sign in -*port parsing fa9c45577dfb cli: Reject + sign in -netinfo level parsing fa980413257e refactor: Use ToIntegral in CreateFromDump fa23ed7fc242 refactor: Use ToIntegral in ParseHDKeypath fa2be605fee4 ci: Enable feature_init and wallet_reorgsrestore in valgrind task 725c9f7780e0 Merge bitcoin/bitcoin#31895: doc: Improve `dependencies.md` bdc1cef1de84 Merge bitcoin/bitcoin#32507: ci: Exclude failing wallet_reorgsrestore.py from valgrind task for now fae840e94b79 rpc: Reject beginning newline in RPC docs e62423d6f151 doc: Improve dependencies.md documentation a3520f9d561e doc: Add dependency self-compilation info d1fdc84c5493 doc: Remove Linux Kernel from dep. table 135a0f0aa711 doc: Add missing top-level description to pruneblockchain RPC fa414eda0834 scripted-diff: Remove unused leading newline in RPC docs fafee8535839 remove unused GetDestinationForKey fac72fef27de remove unused GetAllDestinationsForKey fa91d57de36d remove unused AddrToPubKey 8f4fed7ec700 symbol-check: Add check for application manifest in Windows binaries 2bb6ab8f1baa ci: Add "Get bitcoind manifest" steps to Windows CI jobs 282b4913c7e4 cmake: Add application manifests when cross-compiling for Windows faecf158d997 remove unused Import* function signatures d8f05e7bf3ec qa: Fix dormant bug caused by multiple --tmpdir fa981b90f531 ci: Exclude failing wallet_reorgsrestore.py from valgrind task for now c779ee3a4044 Merge bitcoin/bitcoin#32492: test: add skip_if_running_under_valgrind() 89c7b6b97ab4 Merge bitcoin/bitcoin#32498: doc: remove Carls substitute server from Guix docs 6b4bcc162345 random: Use modern Windows randomness functions 31d3eebfb92a Merge bitcoin/bitcoin#32343: common: Close non-std fds before exec in RunCommandJSON 486bc9179072 depends: bump to latest config.sub 6880383427b4 depends: bump to latest config.guess 4b26ca0e2f1e Merge bitcoin/bitcoin#32502: wallet: Drop unused fFromMe from CWalletTx d5786bc19a9f Merge bitcoin/bitcoin#32490: refactor: Remove UB in prevector reverse iterators ee045b61efc1 rpc, psbt: Require sighashes match for descriptorprocesspsbt 2b7682c3729d psbt: use sighash type field to determine whether to remove non-witness utxos 28781b5f0670 psbt: Add sighash types to PSBT when not DEFAULT or ALL 15ce1bd73f80 psbt: Enforce sighash type of signatures matches psbt 1f71cd337ad7 wallet: Remove sighash type enforcement from FillPSBT 4c7d767e49b2 psbt: Check sighash types in SignPSBTInput and take sighash as optional a11825694856 script: Add IsPayToTaproot() d6001dcd4ada wallet: change FillPSBT to take sighash as optional e58b680923b1 psbt: Return PSBTError from SignPSBTInput 2adfd8153257 tests: Test PSBT sighash type mismatch 5a5d26d6123e psbt: Require ECDSA signatures to be validly encoded 53eb5593f0a1 Merge bitcoin/bitcoin#32305: test: add test for decoding PSBT with MuSig2 PSBT key types (BIP 373) e7a937237686 Merge bitcoin/bitcoin#32378: interfaces: refactor: move `Mining` and `BlockTemplate` implementation to miner 5bf91ba8800d wallet: Drop unused fFromMe from CWalletTx 30a94b1ab9ae test, wallet: Remove concurrent writes test b44b7c03fef0 wallet: Write best block record on unload 876a2585a8b6 wallet: Remove unnecessary database Close step on shutdown 98a1a5275c8c wallet: Remove chainStateFlushed 7fd3e1cf0c88 wallet, bench: Write a bestblock record in WalletMigration 6d3a8b195a82 wallet: Replace chainStateFlushed in loading with SetLastBlockProcessed 7bacabb204b6 wallet: Update best block record after block dis/connect 301993ebf7f8 init: drop -upnp 3b824169c776 doc: remove Carls substitute server from Guix docs f1d78a3087fb Merge bitcoin/bitcoin#31624: doc: warn that CheckBlock() underestimates sigops 516f0689b511 refactor: re-enable UBSan implicit-sign-change in serialize.h 5827e9350779 refactor: use consistent size type for serialization template parameters 62fc42d475df interfaces: refactor: move `waitTipChanged` implementation to miner c39ca9d4f7bc interfaces: move getTip implementation to miner 33dfbbdff69d Merge bitcoin/bitcoin#32483: test: fix two intermittent failures in wallet_basic.py 8a65f0389464 Merge bitcoin/bitcoin#32488: fuzz: Properly setup wallet in wallet_fees target 75a185ea3db3 test: add skip_if_running_under_valgrind() 8f4ba90b8ff4 build: document why we check for std::system faf9082a5f68 test: Fix whitespace in prevector_tests.cpp fa7f04c8a7b7 refactor: Remove UB in prevector reverse iterators fa427ffceeef fuzz: Properly setup wallet in wallet_fees target f9d8910539a2 Merge bitcoin/bitcoin#31080: fees: document non-monotonic estimation edge case 31650b458b6c Merge bitcoin/bitcoin#32386: mining: rename gbt_force and gbt_force_name bac43b957e5f Merge bitcoin/bitcoin#32312: test: Fix feature_pruning test after nTime typo fix c9ab10910cd7 Merge bitcoin/bitcoin#31444: cluster mempool: add txgraph diagrams/mining/eviction e7ad86e1ca3b test: fix another intermittent failure in wallet_basic.py 07350e204ded test: Fix intermittent failure in wallet_basic.py 46b533dfe6fc Update minisketch subtree to latest upstream bf25a0918f94 Squashed 'src/minisketch/' changes from d1e6bb8bbf..ea8f66b1ea 8309a9747a8d Merge bitcoin/bitcoin#32028: Update `secp256k1` subtree to latest master 720f201e6528 interfaces: refactor: move `waitNext` implementation to miner e6c2f4ce7a84 interfaces: refactor: move `submitSolution` implementation to miner 02d4bc776bbe interfaces: remove redundant coinbase fee check in `waitNext` fa9198af55df lint: Check for missing trailing newline fa2b2aa27c29 lint: Add archived notes to default excludes cbd8e3d51148 Merge bitcoin/bitcoin#32476: refactor: Remove unused HaveKey and HaveWatchOnly 915c1fa72c07 Update secp256k1 subtree to latest master c31fcaaad38b Squashed 'src/secp256k1/' changes from 0cdc758a56..4187a46649 fabdc5ad06bc Remove unused LegacyDataSPKM::HaveWatchOnly() fa7b7f796ac8 Remove HaveKey helper, unused after sethdseed removal 8673e8f01917 txgraph: Special-case singletons in chunk index (optimization) abdd9d35a34d txgraph: Skipping end of cluster has no impact (optimization) 604acc2c289f txgraph: Re 9E19 use discarded chunkindex entries (optimization) c734081454d7 txgraph: Introduce TxGraph::GetWorstMainChunk (feature) 394dbe21427e txgraph: Introduce BlockBuilder interface (feature) 883df3648ee9 txgraph: Generalize GetClusterRefs to support subsections (preparation) c28a602e007f txgraph: Introduce TxGraphImpl observer tracking (preparation) 9095d8ac1c31 txgraph: Maintain chunk index (preparation) 87e74e1242ec txgraph: abstract out transaction ordering (refactor) 2614fea17fe3 txgraph: Add GetMainStagingDiagrams function (feature) a5ac43d98d1a doc: Add release notes describing bitcoin wrapper executable 663a9cabf811 Merge bitcoin/bitcoin#32458: guix: move `*-check.py` scripts under contrib/guix/ 258bda80c009 doc: Mention bitcoin wrapper executable in documentation d2739d75c911 build: add bitcoin.exe to windows installer ba649c00063a ci: Run multiprocess tests through wrapper executable 29bdd743bb84 test: Support BITCOIN_CMD environment variable 9c8c68891b43 multiprocess: Add bitcoin wrapper executable 5076d20fdb70 util: Add cross-platform ExecVp and GetExePath functions 05765b8818cf Merge bitcoin/bitcoin#32472: doc: Fix typo d847e17c9656 doc: Fix typo 3edf400b1020 Merge bitcoin/bitcoin#32469: cmake: Allow `WITH_DBUS` on all Unix-like systems 59e09e0fb7b4 Merge bitcoin-core/gui#871: qt, docs: Unify term "clipboard" 46f79dde67e4 Merge bitcoin-core/gui#841: Decouple WalletModel from RPCExecutor 5b7ed460c7c1 cmake: Allow `WITH_DBUS` on all Unix-like systems 746ab19d5a13 Merge bitcoin/bitcoin#32446: build: simplify *ifaddr handling 6f7052a7b96f threading: semaphore: move CountingSemaphoreGrant to its own header fd1546989293 threading: semaphore: remove temporary convenience types 1f89e2a49a21 scripted-diff: threading: semaphore: use direct types rather than the temporary convenience ones f21365c4fc7f threading: replace CountingSemaphore with std::counting_semaphore 1acacfbad780 threading: make CountingSemaphore/CountingSemaphoreGrant template types e6ce5f9e7874 scripted-diff: rename CSemaphore and CSemaphoreGrant 793166d3810e wallet: change the write semaphore to a BinarySemaphore 6790ad27f157 scripted-diff: rename CSemaphoreGrant and CSemaphore for net d870bc94519a threading: add temporary semaphore aliases 19b1e177d673 Merge bitcoin/bitcoin#32155: miner: timelock the coinbase to the mined block's height 6c6ef58b0b22 Merge bitcoin/bitcoin#32436: test: refactor: negate signature-s using libsecp256k1 b104d4422770 test: Remove RPCOverloadWrapper 4d32c19516fd test: Replace importpubkey fe838dd391be test: Replace usage of addmultisigaddress d3142077794f test: Replace usage of importaddress fcc457573f9b test: Replace importprivkey with wallet_importprivkey 94c87bbbd06e test: Remove unnecessary importprivkey from wallet_createwallet 9a05b45da60d Merge bitcoin/bitcoin#32438: refactor: Removals after bdb removal e49a7274a214 rpc: Avoid join-split roundtrip for user:pass for auth credentials 98ff38a6f1a8 rpc: Perform HTTP user:pass split once in `RPCAuthorized` 879a17bcb1a5 rpc: Store all credentials hashed in memory 4ab9bedee9d8 rpc: Undeprecate rpcuser/rpcpassword, change message to security warning fa061bfcdb0c Remove create options from wallet tool fa2125e7b8e3 Remove unused IsSingleKey fab5e2a0948a doc: Remove note about bdb wallets eeeef88d46fe doc: fix typo in abortrescan rpc fa7e5c15a795 Remove unused LegacyDataSPKM::DeleteRecords() b070ce16966f Merge bitcoin/bitcoin#31360: depends: Avoid using helper variables in toolchain file ffff94947298 remove NotifyWatchonlyChanged fa62a013a558 remove dead flush() fa5f3e62c880 vcpkg: Remove bdb 415650cea94f guix: move *-check.py scripts under contrib/guix 5b8752198e97 Merge bitcoin/bitcoin#32454: tracing: fix invalid argument in mempool_monitor 31c5ebc40078 tracing: fix invalid argument in mempool_monitor ad5cd129f3cc Merge bitcoin/bitcoin#30660: qa: Verify clean shutdown on startup failure 7b816c4e00e2 threading: rename CSemaphore methods to match std::semaphore 1656f6dbba86 Merge bitcoin/bitcoin#32448: contrib: remove bdb exception from FORTIFY check a04f17a18824 doc: warn that CheckBlock() underestimates sigops ab878a7e7410 build: simplify *ifaddr handling 1b4ddb0c2d10 Merge bitcoin/bitcoin#32356: cmake: Respect user-provided configuration-specific flags 1ee698fde2e8 test: refactor: negate signature-s using libsecp256k1 f9dfe8d5e0d3 contrib: remove bdb exception from FORTIFY check 66c968b4b4a9 Merge bitcoin/bitcoin#32444: doc: swap "Docker image" for "container image" 646975295237 Merge bitcoin/bitcoin#32434: lint: Remove string exclusion from locale check 1372eb09c5d0 doc: swap "Docker image" for "container image" 03ebdd079302 Merge bitcoin/bitcoin#32437: crypto: disable ASan for sha256_sse4 with Clang 95bb305b96a8 Merge bitcoin/bitcoin#32429: docs: Improve `keypoolrefill` RPC docs 1b1b9f32cfdb Merge bitcoin/bitcoin#32440: test: remove bdb assert in tool_wallet.py e08e6567f2e7 test: remove assert_dump since it is not used anymore ff35a4b021e1 docs: Improve `keypoolrefill` RPC docs 4b2418675672 test: add test for decoding PSBT with MuSig2 PSBT key types (BIP 373) 8ba245cb8318 test: add constants for MuSig2 PSBT key types (BIP 373) 4b6dd9790b66 test: remove bdb assert in tool_wallet.py 97d383af6d54 Test updating non-ranged descriptor with [0,0] range succeeds 7343a1846ceb depends: Avoid using helper variables in toolchain file 0671d66a8ee0 wallet, refactor: Convert uint256 to Txid in wallet c8ed51e62be9 wallet, refactor: Convert uint256 to Txid in wallet interfaces b3214cefe6d8 qt, refactor: Convert uint256 to Txid in the GUI efac285a0d70 Merge bitcoin/bitcoin#28710: Remove the legacy wallet and BDB dependency fa24fdcb7f47 lint: Remove string exclusion from locale check 4e8ab5e00fa7 crypto: disable ASan for sha256_sse4 with Clang 6d5edfcc585b Merge bitcoin/bitcoin#32388: fuzz: Remove unused TimeoutExpired catch in fuzz runner de054df6dc32 contrib: Remove legacy wallet RPCs from bash completions 5dff04a1bba8 legacy spkm: Make IsMine() and CanProvide() private and migration only c0f3f3264ff7 wallet: Remove unused db functions 83af1a3cca7e wallet: Delete LegacySPKM 59d3e4ed34eb Merge bitcoin/bitcoin#32415: scripted-diff: adapt script error constant names in feature_taproot.py fffb272c2587 Merge bitcoin/bitcoin#29532: Refactor BnB tests 3bbdbc0a5e1b qt, docs: Unify term "clipboard" 8ede6dea0c55 wallet, rpc: Remove legacy wallet only RPCs 4de3cec28dfb test: rpcs disabled for descriptor wallets will be removed 84f671b01df4 test: Run multisig script limit test 810476f31e42 test: Remove unused options and variables, correct comments 04a7a7a28cdc build, wallet, doc: Remove BDB 44057fe38ccc Merge bitcoin/bitcoin#32287: build: Fix `macdeployqtplus` after switching to Qt 6 229943b51368 Merge bitcoin/bitcoin#32086: Shuffle depends instructions and recommend modern make for macOS 3e6ac5bf7727 refactor: validation: mark CheckBlockIndex as const 61a51eccbba1 validation: don't use GetAll() in CheckBlockIndex() edde96376a29 cmake: Respect user-provided configuration-specific flags 22cff32319de doc: recommend gmake for FreeBSD b645c520714c doc: recommend modern make for macOS depends 99e6490dc51a doc: shuffle depends instructions 1e0de7a6ba92 fees: document non-monotonic estimation edge case baa848b8d381 Merge bitcoin/bitcoin#32405: build: replace header checks with `__has_include` 3a18075aedd7 ci: Drop `-DENABLE_EXTERNAL_SIGNER=ON` configure option 719fa9f4ef68 build: Re-enable external signer support for Windows 6e5fc2bf9b18 test: Reintroduce Windows support in `system_tests/run_command` test 53ccb75f0c47 Merge bitcoin/bitcoin#32358: subprocess: Backport upstream changes fa2c5484296f Merge bitcoin/bitcoin#32417: doc: Explain that .gitignore is not for IDE-specific excludes fada115cbeaa doc: Explain that .gitignore is not for IDE-specific excludes b5f580c58025 scripted-diff: adapt script error constant names in feature_taproot.py eba5f9c4b63f Merge bitcoin/bitcoin#32403: test: remove Boost SIGCHLD workaround. e1f543823b30 build: replace header checks with __has_include 3add6ab9adcd test: remove Boost SIGCHLD workaround. cd95c9d6a7ec subprocess: check and handle fcntl(F_GETFD) failure b7288decdf53 subprocess: Proper implementation of wait() on Windows 7423214d8dee subprocess: Do not escape double quotes for command line arguments on Windows bb9ffea53fb0 subprocess: Explicitly define move constructor of Streams class 174bd43f2e46 subprocess: Avoid leaking POSIX name aliases beyond `subprocess.h` 7997b7656f99 subprocess: Fix cross-compiling with mingw toolchain 647630462f10 subprocess: Get Windows return code in wait() d3f511b4583b subprocess: Fix string_arg when used with rref 2fd3f2fec67a subprocess: Fix memory leaks 5b8046a6e893 Merge bitcoin/bitcoin#30611: validation: write chainstate to disk every hour fc6346dbc8dc Merge bitcoin/bitcoin#32389: doc: Fix test_bitcoin path a0eed55398f8 run_command: Enable close_fds option to avoid lingering fds c7c356a44865 cpp-subprocess: Iterate through /proc/self/fd for close_fds option on Linux 4f5e04da1350 Revert "remove unneeded close_fds option from cpp-subprocess" 6cbc28b8dd62 doc: Fix test_bitcoin path 85368aafa0d1 test: Run simple tests at various feerates d610951c1546 test: Recreate BnB iteration exhaustion test 2a1b2754f14a test: Remove redundant repeated test 4781f5c8be55 test: Recreate simple BnB failure tests a94030ae985b test: Recreate BnB clone skipping test 7db6f012c08c test: Move BnB feerate sensitivity tests 2bafc462610c test: Recreate simple BnB success tests e976bd304501 validation: add randomness to periodic write interval 2e2f41068128 refactor: replace m_last_write with m_next_write b557fa7a175f refactor: rename fDoFullFlush to should_write d73bd9fbe483 validation: write chainstate to disk every hour 68ac9f116c02 Merge bitcoin/bitcoin#32383: util: Remove `fsbridge::get_filesystem_error_message()` fa4804009ceb fuzz: Remove unused TimeoutExpired catch in fuzz runner 0750249289c0 mining: document gbt_rule_value helper 5e87c3ec094d scripted-diff: rename gbt_force and gbt_force_name 97eaadc3bf9f util: Remove `fsbridge::get_filesystem_error_message()` 14b8dfb2bd5e Merge bitcoin/bitcoin#31398: wallet: refactor: various master key encryption cleanups a60445cd04c8 Merge bitcoin/bitcoin#32355: Bugfix: Miner: Don't reuse block_reserved_weight for "block is full enough to give up" weight delta 2d5b4244147b Merge bitcoin/bitcoin#32351: test: avoid stack overflow in `FindChallenges` via manual iteration 0ed5f37afef1 Merge bitcoin/bitcoin#31014: net: Use GetAdaptersAddresses to get local addresses on Windows 7a4a2a38ea37 Merge bitcoin/bitcoin#27826: validation: log which peer sent us a header 4694732bc4c3 Merge bitcoin/bitcoin#32338: net: remove unnecessary check from AlreadyConnectedToAddress() 7db096121d37 Merge bitcoin/bitcoin#29039: versionbits refactoring 51d76634fb57 Merge bitcoin/bitcoin#32365: descriptors: Reject + sign while parsing unsigned c5e44a043563 Merge bitcoin/bitcoin#32369: test: Use the correct node for doubled keypath test 32d55e28af69 test: Use the correct node for doubled keypath test 65714c162c16 Merge bitcoin/bitcoin#32327: test: Add missing check for empty stderr in util tester a4eee6d50be0 Merge bitcoin/bitcoin#29124: test: Test that migration automatically repairs corrupted metadata with doubled derivation path af6cffa36d12 Merge bitcoin/bitcoin#32350: test: Slim down previous releases bdb check 33e6538b3076 Merge bitcoin/bitcoin#32360: test: Force named args for RPCOverloadWrapper optional args 3a29ba33dca6 Merge bitcoin/bitcoin#32357: depends: Fix cross-compiling `qt` package from macOS to Windows fa655da15987 test: [refactor] Use ToIntegral in CheckInferDescriptor fa55dd01df83 descriptors: Reject + sign when parsing multi threshold fa6f77ed3c15 descriptors: Reject + sign in ParseKeyPathNum 7e8ef959d063 refactor: Fix Sonar rule `cpp:S4998` - avoid unique_ptr const& as parameter e400ac53524d refactor: simplify repeated comparisons in `FindChallenges` f670836112c0 test: remove old recursive `FindChallenges_recursive` implementation b80d0bdee460 test: avoid stack overflow in `FindChallenges` via manual iteration fa48be3ba443 test: Force named args for RPCOverloadWrapper optional args aaaa45399ca3 test: Remove unused createwallet_passthrough d05481df644c refactor: validation: mark SnapshotBase as const f409444d0243 Merge bitcoin/bitcoin#32071: build: Drop option to disable hardening. cccc1f4e9190 test: Remove unused RPCOverloadWrapper is_cli field d62c2d82e14d Merge bitcoin/bitcoin#32353: doc: Fix fuzz test_runner.py path 10845cd7cc89 qa: Add feature_framework_startup_failures.py 35e57fbe336c depends: Fix cross-compiling `qt` package from macOS to Windows d2ac748e9e7a Merge bitcoin-core/gui#864: Crash fix, disconnect numBlocksChanged() signal during shutdown 524f981bb873 Bugfix: Miner: Don't reuse block_reserved_weight for "block is full enough to give up" weight delta 84de8c93e7d4 ci: Add `deploy` target for native macOS CI job fad57e9e0fe2 build: Fix `macdeployqtplus` after switching to Qt 6 de90b47ea098 Merge bitcoin-core/gui#868: Replace stray tfm::format to cerr with qWarning a58cb3b1c12c qa: sanity check mined block have their coinbase timelocked to height 8f2078af6a55 miner: timelock coinbase transactions 788aeebf3435 qa: use prev height as nLockTime for coinbase txs created in unit tests c76dbe9b8b6f qa: timelock coinbase transactions created in fuzz targets 9c94069d8b6c contrib: timelock coinbase transactions in signet miner a5f52cfcc400 qa: timelock coinbase transactions created in functional tests 61f238e84ac6 doc: Fix fuzz test_runner.py path c7e2b9e26444 tests: Test migration cleans up bad inactive chain derivation path fa58f40b898b test: Slim down previous releases bdb check f1b142856a4e test: Same addr, diff port is already connected 94e85a82a753 net: remove unnecessary check from AlreadyConnectedToAddress() 28e282ef9ae9 qa: assert_raises_message() - Stop assuming certain structure for exceptions 80e6ad9e3023 Merge bitcoin/bitcoin#31250: wallet: Disable creating and loading legacy wallets 971952588dae Merge bitcoin/bitcoin#32242: guix: Remove unused `file` package ff69046e664f Merge bitcoin/bitcoin#32215: depends: Fix cross-compiling on macOS 2ae1788dd46a Skip range verification for non-ranged desc 4eee328a9820 Merge bitcoin/bitcoin#32318: Fix failing util_time_GetTime test on Windows 71656bdfaa6b gui: crash fix, disconnect numBlocksChanged() signal during shutdown 3dbd50a576be Fix failing util_time_GetTime test on Windows edd46566bd66 qt: Replace stray tfm::format to cerr with qWarning 458720e5e98c Merge bitcoin/bitcoin#32336: test: Suppress upstream `-Wduplicate-decl-specifier` in bpfcc facb9b327b9d scripted-diff: Use bpf_cflags fa0c1baaf898 test: Add imports for util bpf_cflags 9efe54668858 Merge bitcoin/bitcoin#31835: validation: set BLOCK_FAILED_CHILD correctly bd158ab4e35c Merge bitcoin/bitcoin#32023: wallet: removed duplicate call to GetDescriptorScriptPubKeyMan 17bb63f9f9b0 wallet: Disallow loading legacy wallets 9f04e02ffaee wallet: Disallow creating legacy wallets 6b247279b72d wallet: Disallow legacy wallet creation from the wallet tool 5e93b1fd6c1e bench: Remove WalletLoadingLegacy benchmark 56f959d829e9 wallet: Remove wallettool salvage 7a41c939f05f wallet: Remove -format and bdb from wallet tool's createfromdump c847dee1488a test: remove legacy wallet functional tests 20a9173717b1 test: Remove legacy wallet tests from wallet_reindex.py 446d480cb22c test: Remove legacy wallet tests from wallet_backwards_compatibility.py aff80298d05c test: wallet_signer.py bdb will be removed f94f9399ac47 test: Remove legacy wallet unit tests d9ac9dbd8ef5 tests, gui: Use descriptors watchonly wallet for watchonly test 9a4c92eb9ac2 Merge bitcoin/bitcoin#32226: ci: switch to LLVM 20 in tidy job 82d1e94838ee Merge bitcoin/bitcoin#32310: test: Run all benchmarks in the sanity check dda2d4e17662 Merge bitcoin/bitcoin#32113: fuzz: enable running fuzz test cases in Debug mode faca46b0421b test: Run all benchmarks in the sanity check fadf12a56c29 test: Add missing check for empty stderr in util tester 08aa7fe23263 ci: clang-tidy 20 2b85d31bcc2f refactor: starts/ends_with changes for clang-tidy 20 3669ecd4ccd8 doc: Document fuzz build options c1d01f59acc2 fuzz: enable running fuzz test cases in Debug mode 1f639efca5e7 qa: Work around Python socket timeout issue 2aa63d511aff test: Use uninvolved pruned node in feature_pruning undo test 772ba7f9ce09 test: Fix nTimes typo in feature_pruning test 9b24a403fae4 qa: Only allow calling TestNode.stop() after connecting 6ad21b4c0114 qa: Include ignored errors in RPC connection timeout 879243e81fd5 qa refactor: wait_for_rpc_connection - Treat OSErrors the same 513e2020a9ac guix: Remove unused `file` package 938208d91a27 build: Resolve `@rpath` in `macdeployqtplus` abe43dfadd63 doc: release note for #27826 f9fa28788e63 Use LogBlockHeader for compact blocks bad7c9147931 Log which peer sent us a header 9d3e39c29c31 Log block header in net_processing d0cce4172c04 depends: Fix `mv` command compatibility with macOS 690f5da15a1e depends: Specify Objective C/C++ compilers for `native_qt` package 3c3548a70eed validation: clarify final |= BLOCK_FAILED_VALID in InvalidateBlock aac5488909f7 validation: correctly update BlockStatus for invalid block descendants 9e29653b424b test: check BlockStatus when InvalidateBlock is used c99667583dd9 validation: fix traversal condition to mark BLOCK_FAILED_CHILD 77e553ab6a0a build: refactor: hardening flags -> core_interface 00ba3ba30341 build: Drop option for disabling hardening f57db75e91de build: Use `-z noseparate-code` on NetBSD < 11.0 55b931934a34 removed duplicate calling of GetDescriptorScriptPubKeyMan e3014017bacf test: add IsActiveAfter tests for versionbits 60950f77c35e versionbits: docstrings for BIP9Info b9d4d5f66a5a net: Use GetAdaptersAddresses to get local addresses on Windows a8333fc9ff9a scripted-diff: wallet: rename plain and encrypted master key variables 5a92077fd531 wallet: refactor: dedup master key decryption 846545947cd3 wallet: refactor: dedup master key encryption / derivation rounds setting a6d9b415aa3a wallet: refactor: introduce `CMasterKey::DEFAULT_DERIVE_ITERATIONS` constant 62c209f50d9c wallet: doc: remove mentions of unavailable scrypt derivation method 7565563bc7a5 tests: refactor versionbits fuzz test 2e4e9b9608c7 tests: refactor versionbits unit test 525c00f91bb2 versionbits: Expose VersionBitsConditionChecker via impl header e74a7049b477 versionbits: Expose StateName function d00d1ed52c8e versionbits: Split out internal details into impl header 37b9b67a3955 versionbits: Simplify VersionBitsCache API 1198e7d2fd66 versionbits: Move BIP9 status logic for getblocktemplate to versionbits b1e967c3ec92 versionbits: Move getdeploymentinfo logic to versionbits 3bd32c20550e versionbits: Move WarningBits logic from validation to versionbits 5da119e5d0e6 versionbits: Change BIP9Stats to uint32_t types a679040ec19e consensus/params: Move version bits period/threshold to bip9 param 0ad7d7abdbcf test: chainstate write test for periodic chainstate flush e9d617095d4c versionbits: Remove params from AbstractThresholdConditionChecker 9bc41f1b48b2 versionbits: Use std::array instead of C-style arrays 002b792b9a85 gui: decouple WalletModel from RPCExecutor REVERT: 4a4eeb94339b kernel: Fix bitcoin-chainstate for windows REVERT: 9eb5d74b2d03 kernel: Add Purpose section to header documentation REVERT: 7cf01306523b kernel: Add pure kernel bitcoin-chainstate REVERT: 51aad49acdfe kernel: Add functions to get the block hash from a block REVERT: a6ed3dec4d1d kernel: Add block index utility functions to C header REVERT: 7aaefbbb3937 kernel: Add function to read block undo data fr 8884 om disk to C header REVERT: 9535ffadba5c kernel: Add functions to read block from disk to C header REVERT: 321ce88607fd kernel: Add function for copying block data to C header REVERT: a15d107250f8 kernel: Add functions for the block validation state to C header REVERT: f9f9a86402b1 kernel: Add validation interface to C header REVERT: bac152a4fbe5 kernel: Add interrupt function to C header REVERT: e1f204cb0de0 kernel: Add import blocks function to C header REVERT: 75f25fa1b0b4 kernel: Add chainstate load options for in-memory dbs in C header REVERT: 68acd5e0e904 kernel: Add options for reindexing in C header REVERT: 04be23481105 kernel: Add block validation to C header REVERT: 3cdc538d77d0 kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: a5a47d95e597 kernel: Add chainstate manager option for setting worker threads REVERT: 5052b9bd823b kernel: Add chainstate manager object to C header REVERT: 82f4769656b1 kernel: Add notifications context option to C header REVERT: 7e32f6a9e897 kernel: Add chain params context option to C header REVERT: af442d0d6cb1 kernel: Add kernel library context object REVERT: e1a6c1b5b928 kernel: Add logging to kernel library C header REVERT: 3339e6ca6a5f kernel: Introduce initial kernel C header API git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 1417e0b3b1b03dd014a3459c10a5ae7ab0c3687f
#32023 changed
AddWalletDescriptor
to returnutil::Error
, but did not change all of the failure cases to do so. This may result in some callers continuing when there was actually an error. Unify all of the failure cases to useutil::Error
so that all callers handleAddWalletDescriptor
errors in the same way.The encapsulated return type is changed from
ScriptPubKeyMan*
tostd::reference_wrapper<DescriptorScriptPubKeyMan>
. This avoids having a value that can be interpreted as a bool, and also removes the need to constantly dynamic_cast the returned value. The only kind ofScriptPubKeyMan
that can come out ofAddWalletDescriptor
is aDescriptorScriptPubKeyMan
anyways.