aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-07-20refactor: Pass reference to LookUpStatsMacroFake
2022-07-20Merge bitcoin/bitcoin#25308: refactor: Reduce number of LoadChainstate ↡MacroFake
parameters and return values 1e761a0169ebdbd3b5784af39fc2248b4546eeea ci: Enable IWYU in src/kernel directory (Ryan Ofsky) 6db6552377ad6316626b3ab8605a98f96f22c3d2 refactor: Reduce number of SanityChecks return values (Ryan Ofsky) b3e7de7ee6efb186efc272855ff1af5d9254b971 refactor: Reduce number of LoadChainstate return values (Russell Yanofsky) 3b91d4b9947adbec74721f538e46c712db22587c refactor: Reduce number of LoadChainstate parameters (Russell Yanofsky) Pull request description: Replace long LoadChainstate parameters list with options struct. Replace long list of return values with simpler error strings. No changes in behavior. Motivation is just to make libbitcoin_kernel API easier to use and more future-proof, and make internal code clearer and more maintainable. ACKs for top commit: MarcoFalke: ACK 1e761a0169ebdbd3b5784af39fc2248b4546eeea πŸ•š Tree-SHA512: 86f251ab820ca6664ade87ccac8330f79b0e48e26b98082f022f592ed1380f8eefc3cce260b85d5eea5d2f5f2531602e03d641e579c15684ecd9093b2aebcc58
2022-07-19Add wallet tests for spending rawtr()Pieter Wuille
2022-07-19If P2TR tweaked key is available, sign with itPieter Wuille
2022-07-19Add rawtr() descriptor for P2TR with unknown tweakPieter Wuille
2022-07-19Merge bitcoin/bitcoin#25645: refactor: Remove unused includes from dbwrapper.hfanquake
faf98aecf876fae0ec6d4d16b7e66f3a35253180 Remove unused includes in rpc/fees.cpp (MacroFake) 1111ddeedf7ea801507db4e23b4737ec183eb19c Remove unused includes from dbwrapper.h (MacroFake) fa77fdd0475fa15a1a3641c5d5a2bf7ad095aa84 Add missing includes (MacroFake) fa869ce2c2b906d8b087c4e7a5f1804a74b1c522 Add missing includes to node/chainstate (MacroFake) Pull request description: Unused includes are confusing, but also cause unrelated compile errors when the unused includes were to be removed. Fix that by adding the missing includes where they are needed and then remove them where they are not needed. This is also checked by iwyu. ACKs for top commit: hebasto: ACK faf98aecf876fae0ec6d4d16b7e66f3a35253180, I have reviewed the code and it looks OK, I agree it can be merged. jarolrod: Code Review ACK https://github.com/bitcoin/bitcoin/commit/faf98aecf876fae0ec6d4d16b7e66f3a35253180 Tree-SHA512: 75f3c6e6f6ecf8a98233e1a1463c75ca4e0eb3ec341150d274141072fe95413a3c2ec6386d1c527899cc63d43f63f5eb5991509847412773362808ddfb1bb435
2022-07-19ci: Enable IWYU in src/kernel directoryRyan Ofsky
Suggested https://github.com/bitcoin/bitcoin/pull/25308#discussion_r892505713
2022-07-19refactor: Reduce number of SanityChecks return valuesRyan Ofsky
2022-07-19refactor: Reduce number of LoadChainstate return valuesRussell Yanofsky
2022-07-19refactor: Reduce number of LoadChainstate parametersRussell Yanofsky
2022-07-19Merge bitcoin/bitcoin#25494: indexes: Stop using node internal typesfanquake
7878f97bf15b6e7c9b47d1c0d96419b97e1bdcbd indexes, refactor: Remove CChainState use in index CommitInternal method (Ryan Ofsky) ee3a079fab2c33b4186b62ab822753954a4e545f indexes, refactor: Remove CBlockIndex* uses in index Rewind methods (Ryan Ofsky) dc971be0831959e7ee6a6df9e1aa46091351a8fb indexes, refactor: Remove CBlockIndex* uses in index WriteBlock methods (Ryan Ofsky) bef4e405f3de2718dfee279a9abff4daf016da26 indexes, refactor: Remove CBlockIndex* uses in index Init methods (Ryan Ofsky) addb4f2af183a25ce4a6b6485b5b49575a2ba31b indexes, refactor: Remove CBlockIndex* uses in coinstatsindex LookUpOne function (Ryan Ofsky) 33b4d48cfcdf145f49cb2283ac3e2936a4e23fff indexes, refactor: Pass Chain interface instead of CChainState class to indexes (Ryan Ofsky) a0b5b4ae5a24536d333cbce2ea584f2d935c651f interfaces, refactor: Add more block information to block connected notifications (Ryan Ofsky) Pull request description: Start transitioning index code away from using internal node types like `CBlockIndex` and `CChain` so index code is less coupled to node code and index code will later be able to stop locking cs_main and sync without having to deal with validationinterface race conditions, and so new indexes are easier to write and can run as plugins or separate processes. This PR contains the first 7 commits from https://github.com/bitcoin/bitcoin/pull/24230#issuecomment-1165625977 which have been split off for easier review. Previous review comments can be found in #24230 ACKs for top commit: MarcoFalke: ACK 7878f97bf15b6e7c9b47d1c0d96419b97e1bdcbd though did not review the last commit 🀼 mzumsande: Code Review ACK 7878f97bf15b6e7c9b47d1c0d96419b97e1bdcbd Tree-SHA512: f84ac2eb6dca2c305566ddeb35ea14d0b71c00860c0fd752bbcf1a0188be833d8c2a6ac9d3ef6ab5b46fbd02d7a24cbb8f60cf12464cb8ba208e22287f709989
2022-07-19Merge bitcoin/bitcoin#25513: psbt: Check Taproot tree depth and leaf versionsfanquake
76fb300b63c5c0d01d768510ec69d894820432fa psbt: Check Taproot tree depth and leaf versions (Andrew Chow) Pull request description: Since TaprootBuilder has assertions for the depth and leaf versions, the PSBT decoder should check these values before calling TaprootBuilder::Add so that the assertions are not triggered on malformed taproot trees. Fixes https://github.com/bitcoin/bitcoin/pull/22558#issuecomment-1170935136 ACKs for top commit: Sjors: utACK 76fb300b63c5c0d01d768510ec69d894820432fa sipa: utACK 76fb300b63c5c0d01d768510ec69d894820432fa w0xlt: ACK https://github.com/bitcoin/bitcoin/pull/25513/commits/76fb300b63c5c0d01d768510ec69d894820432fa Tree-SHA512: 94b288bc1453d10bce9a8a6389bc866f2c71c76579b7908e22d6b5770ac387086f6221af8597668e62977d4d6861fe2d72ec7b052002a2c36769d056b2e66360
2022-07-19Merge bitcoin/bitcoin#25643: depends: compile FastFixedDtoa with -O1 to fix ↡Andrew Chow
cross-arch reproducibility for arm32 c32fa85909dde8f7d61c2a291564f3f26884e170 depends: modify FastFixedDtoa optimisation flags (fanquake) Pull request description: This fixes a non-determinism issue in the asm produced for this function when cross-compiling on x86_64 and aarch64 for the arm-linux-gnueabihf HOST. Related to #21194. Alternative to #25636. Initial discussion in https://github.com/bitcoin/bitcoin/pull/24615#issuecomment-1080809879. Guix Build (x86_64): ```bash 28ae0ec2874ead334edd1c5dc509344379d82f7058b649c9076992defd7190d7 guix-build-c32fa85909dd/output/arm-linux-gnueabihf/SHA256SUMS.part 48d34073b029c4f62c8e1bd906533610228d5ca0bb5eefea6010dfa7372ba067 guix-build-c32fa85909dd/output/arm-linux-gnueabihf/bitcoin-c32fa85909dd-arm-linux-gnueabihf-debug.tar.gz 850d6e9859e88bcb93ed586bdb0c0bc95a44249d6a0ec1b1d13125cb9dd56413 guix-build-c32fa85909dd/output/arm-linux-gnueabihf/bitcoin-c32fa85909dd-arm-linux-gnueabihf.tar.gz b8bb092b1307684ea4b53d810ac110ec14f29eeab8028d924d1cac7418009b14 guix-build-c32fa85909dd/output/dist-archive/bitcoin-c32fa85909dd.tar.gz ``` Guix Build (arm64): ```bash 28ae0ec2874ead334edd1c5dc509344379d82f7058b649c9076992defd7190d7 guix-build-c32fa85909dd/output/arm-linux-gnueabihf/SHA256SUMS.part 48d34073b029c4f62c8e1bd906533610228d5ca0bb5eefea6010dfa7372ba067 guix-build-c32fa85909dd/output/arm-linux-gnueabihf/bitcoin-c32fa85909dd-arm-linux-gnueabihf-debug.tar.gz 850d6e9859e88bcb93ed586bdb0c0bc95a44249d6a0ec1b1d13125cb9dd56413 guix-build-c32fa85909dd/output/arm-linux-gnueabihf/bitcoin-c32fa85909dd-arm-linux-gnueabihf.tar.gz b8bb092b1307684ea4b53d810ac110ec14f29eeab8028d924d1cac7418009b14 guix-build-c32fa85909dd/output/dist-archive/bitcoin-c32fa85909dd.tar.gz ``` ACKs for top commit: achow101: ACK c32fa85909dde8f7d61c2a291564f3f26884e170 hebasto: ACK c32fa85909dde8f7d61c2a291564f3f26884e170 jarolrod: ACK c32fa85909dde8f7d61c2a291564f3f26884e170 Tree-SHA512: 137d76274b1421247f43e5f040b4b5c42473f94d734498c73ab40e580c47dfecbbf11f1a69c15a87d805d4b8e9ef1fd62cc1b69c0f1614c62ff3cba98b1733e8
2022-07-19test: add unit test for AvailableCoinsjosibake
test that UTXOs are bucketed correctly after running AvailableCoins
2022-07-19test: functional test for new coin selection logicjosibake
Create a wallet with mixed OutputTypes and send a volley of payments, ensuring that there are no mixed OutputTypes in the txs. Finally, verify that OutputTypes are mixed only when necessary.
2022-07-19wallet: run coin selection by `OutputType`josibake
Run coin selection on each OutputType separately, choosing the best solution according to the waste metric. This is to avoid mixing UTXOs that are of different OutputTypes, which can hurt privacy. If no single OutputType can fund the transaction, then coin selection considers the entire wallet, potentially mixing (current behavior). This is done inside AttemptSelection so that all OutputTypes are considered at each back-off in coin selection.
2022-07-19test: add test for decoding PSBT with per-input preimage typesSebastian Falbesoner
2022-07-19refactor: move helper `random_bytes` to util librarySebastian Falbesoner
Can be easily reviewed with `--color-moved=dimmed-zebra`.
2022-07-19Merge bitcoin/bitcoin#25639: guix: Drop repetition of option's default valuefanquake
2ade04c0d9f8a18cd6f0c425289a016ad5b1e478 guix: Drop repetition of option's default value (Hennadii Stepanov) Pull request description: Split from bitcoin/bitcoin#25169. Guix builds on `x86_64`: ``` 492efd1debd9a8587754521aca7a7362338eabd1e96fbec21c89c3ba3c2607fd guix-build-2ade04c0d9f8/output/aarch64-linux-gnu/SHA256SUMS.part 22d1b357e984710fd6ebc9b2b636d129376f486039a12c87cbb56e4b9c35d9bc guix-build-2ade04c0d9f8/output/aarch64-linux-gnu/bitcoin-2ade04c0d9f8-aarch64-linux-gnu-debug.tar.gz 067e2efb51abc18afbd95d539cb300d63b7c7289d95e95fd3de889962c5835e9 guix-build-2ade04c0d9f8/output/aarch64-linux-gnu/bitcoin-2ade04c0d9f8-aarch64-linux-gnu.tar.gz 87f1bc63f0d98b6a1df0e5ebf6f89d9d12fe02761af88766d45a78e24a10ccb2 guix-build-2ade04c0d9f8/output/arm-linux-gnueabihf/SHA256SUMS.part 7e3dfcd0ec2d693f77b2711681155592cd00e22bf6bfca05a8efbd1d50225461 guix-build-2ade04c0d9f8/output/arm-linux-gnueabihf/bitcoin-2ade04c0d9f8-arm-linux-gnueabihf-debug.tar.gz c9d887e0839808426d6f9edf38a805ec72a44e759e3012e9b89435e59ba4fc0b guix-build-2ade04c0d9f8/output/arm-linux-gnueabihf/bitcoin-2ade04c0d9f8-arm-linux-gnueabihf.tar.gz f4634a8f9117d94f43ac26121755fc221e88c45d6a8f84c971911ff36bf8a897 guix-build-2ade04c0d9f8/output/arm64-apple-darwin/SHA256SUMS.part 639ccbd374500b6f75fa8968821ec643577846c6495e2d0910f6d9423099f899 guix-build-2ade04c0d9f8/output/arm64-apple-darwin/bitcoin-2ade04c0d9f8-arm64-apple-darwin-unsigned.dmg 728767f11990e5310ef94816ba11176caa4b42c4bea181cf10f3bae8d2cd70fc guix-build-2ade04c0d9f8/output/arm64-apple-darwin/bitcoin-2ade04c0d9f8-arm64-apple-darwin-unsigned.tar.gz dd3913946e02c895e932bfb7d621cb68ed26022d81d6b4ebf3c5927a86b86647 guix-build-2ade04c0d9f8/output/arm64-apple-darwin/bitcoin-2ade04c0d9f8-arm64-apple-darwin.tar.gz 0d69ada990f1a3f9b80d8fe495bb049297c496993b9994e276d97f8aeaecbceb guix-build-2ade04c0d9f8/output/dist-archive/bitcoin-2ade04c0d9f8.tar.gz 5b72d28a5b6eee9b184906efe4b774598a3a9bb24a5af71be72ee20175bcd24c guix-build-2ade04c0d9f8/output/powerpc64-linux-gnu/SHA256SUMS.part 5dc632d75d68cb6a4277c03dc1d0b0dfb64979a9689b20e1132f7f639158d9a7 guix-build-2ade04c0d9f8/output/powerpc64-linux-gnu/bitcoin-2ade04c0d9f8-powerpc64-linux-gnu-debug.tar.gz 32a69218d20f0f7e9dd55eb46e5d0b73aa70fb55718d79964acb4a58ee64109f guix-build-2ade04c0d9f8/output/powerpc64-linux-gnu/bitcoin-2ade04c0d9f8-powerpc64-linux-gnu.tar.gz 15431ebb9ccc413eab68e622c0ac9cc3360df52cd967e3ccba516d6b7bbc9ea1 guix-build-2ade04c0d9f8/output/powerpc64le-linux-gnu/SHA256SUMS.part f6bd41ee2b80ab8e7f78eb3071a8cda943061870d32fa5eefca042a3ef0e65f4 guix-build-2ade04c0d9f8/output/powerpc64le-linux-gnu/bitcoin-2ade04c0d9f8-powerpc64le-linux-gnu-debug.tar.gz bcb07c4d94dcd56fbd8b656bbd003441357eed9a4c6ec4a2ca1784ef8d986ef7 guix-build-2ade04c0d9f8/output/powerpc64le-linux-gnu/bitcoin-2ade04c0d9f8-powerpc64le-linux-gnu.tar.gz 8038401712d0283e4ef5d2933e54647c3505796c5b6b2ef4bb5c1fb6346301b4 guix-build-2ade04c0d9f8/output/riscv64-linux-gnu/SHA256SUMS.part 35df9ff846450ca571f05db1c07de6e06a14a9c7da50b30945231287a97e47f8 guix-build-2ade04c0d9f8/output/riscv64-linux-gnu/bitcoin-2ade04c0d9f8-riscv64-linux-gnu-debug.tar.gz 02d2356bb9492857b51a5c54bfc0e24f39a4e0ee95fb40366afe9250bb3fd60c guix-build-2ade04c0d9f8/output/riscv64-linux-gnu/bitcoin-2ade04c0d9f8-riscv64-linux-gnu.tar.gz 0dc09ec63e36a3cc4ad7151290e1f648aa99b184161831f48c519073f22a20e1 guix-build-2ade04c0d9f8/output/x86_64-apple-darwin/SHA256SUMS.part b5b8dded31154227bbdf30a4d97b695c2495b6c0ede7ff12ebaafafe47a47df0 guix-build-2ade04c0d9f8/output/x86_64-apple-darwin/bitcoin-2ade04c0d9f8-x86_64-apple-darwin-unsigned.dmg 2a9848487b55af9cf2359148f23d4dc5ff62f6adadf612cb0bd3539d9adcbdbe guix-build-2ade04c0d9f8/output/x86_64-apple-darwin/bitcoin-2ade04c0d9f8-x86_64-apple-darwin-unsigned.tar.gz d4d871f7df69eb172e625fd4170aa956c4f7cba92ae167ac0cbee3b0f381ce52 guix-build-2ade04c0d9f8/output/x86_64-apple-darwin/bitcoin-2ade04c0d9f8-x86_64-apple-darwin.tar.gz 5e05167a88a821953cc5028af9d3e0a80d606eaecf37f3fac01f95abc6161cc2 guix-build-2ade04c0d9f8/output/x86_64-linux-gnu/SHA256SUMS.part ab1d889b3e174428cdf71e41784c7778641bc7001abb88382c7b5d8016b5e08e guix-build-2ade04c0d9f8/output/x86_64-linux-gnu/bitcoin-2ade04c0d9f8-x86_64-linux-gnu-debug.tar.gz d196e8bddc633a08d70e61ec3fc5dacbf58195a91b9e2a20ea53c91b09d3b9eb guix-build-2ade04c0d9f8/output/x86_64-linux-gnu/bitcoin-2ade04c0d9f8-x86_64-linux-gnu.tar.gz ed2f15dadcc401d343869f06ed3c709484b126549aa2bd844ad9e37290d0789a guix-build-2ade04c0d9f8/output/x86_64-w64-mingw32/SHA256SUMS.part 319e59326a20bc206d3fc66439f3d246371ca5d9de17e9a18cc9ee8e39ce0e90 guix-build-2ade04c0d9f8/output/x86_64-w64-mingw32/bitcoin-2ade04c0d9f8-win64-debug.zip f955183729fd7eba43b3e4c637998bb6f2b1f30b37b8be13199ae4096a04d85c guix-build-2ade04c0d9f8/output/x86_64-w64-mingw32/bitcoin-2ade04c0d9f8-win64-setup-unsigned.exe 57fbfb0c00fbd8ba5b23ee2b08299c863d1a6ac9f6b49e1a336612b3027f97fb guix-build-2ade04c0d9f8/output/x86_64-w64-mingw32/bitcoin-2ade04c0d9f8-win64-unsigned.tar.gz 0582dd6ad0504c14692c47e721e51dc3b74b5d9e7c0f543b5a5a0965506b5a27 guix-build-2ade04c0d9f8/output/x86_64-w64-mingw32/bitcoin-2ade04c0d9f8-win64.zip ``` ACKs for top commit: fanquake: ACK 2ade04c0d9f8a18cd6f0c425289a016ad5b1e478 Tree-SHA512: 0c8214b884517794e257de31b8d226bc1d28c91deb4db1ce18affd9d792251b8181e65b2c14081d06408c444d9772279ee42cdfac7952b906b3c8e39bba6ce1e
2022-07-19Merge bitcoin/bitcoin#25630: Add symlinks for hardcoded Makefiles in out of ↡fanquake
tree builds 9aeeb75cf91fdfb03206284e900887211dc76ed3 Add symlinks for hardcoded Makefiles in out of tree builds (Pablo Greco) Pull request description: When doing out of tree builds, some hardwired Makefiles are not symlinked, which makes it a bit more uncomfortable to run some instances of make. There's no "real" functionality loss without this patch because the symlinked files are just for quick access to thinks in the main Makefile ACKs for top commit: hebasto: ACK 9aeeb75cf91fdfb03206284e900887211dc76ed3, tested on Ubuntu 22.04. Tree-SHA512: 656f73c387584cee34f66b3f95993267a40b915762949c7a84b73ba2ea8d37b7b5850733377110e0110ed2f7da64e6a5f9b303812080fe7815154dbb40c8a44c
2022-07-19test: add constants for PSBT key types (BIP 174)Sebastian Falbesoner
Also take use of the constants in the signet miner to get rid of magic numbers and increase readability and maintainability.
2022-07-19refactor: move PSBT(Map) helpers from signet miner to test frameworkSebastian Falbesoner
Can be easily reviewed with `--color-moved=dimmed-zebra`.
2022-07-19refactor: move `from_binary` helper from signet miner to test frameworkSebastian Falbesoner
Can be easily reviewed with `--color-moved=dimmed-zebra`.
2022-07-19scripted-diff: rename `FromBinary` helper to `from_binary` (signet miner)Sebastian Falbesoner
-BEGIN VERIFY SCRIPT- sed -i s/FromBinary/from_binary/g ./contrib/signet/miner -END VERIFY SCRIPT-
2022-07-19refactor: use CoinsResult struct in SelectCoinsjosibake
Pass the whole CoinsResult struct to SelectCoins instead of only a vector. This means we now have to remove preselected coins from each OutputType vector and shuffle each vector individually. Pass the whole CoinsResult struct to AttemptSelection. This involves moving the logic in AttemptSelection to a newly named function, ChooseSelectionResult. This will allow us to run ChooseSelectionResult over each OutputType in a later commit. This ensures the backoffs work properly. Update unit and bench tests to use CoinResult.
2022-07-19refactor: store by OutputType in CoinsResultjosibake
Store COutputs by OutputType in CoinsResult. The struct stores vectors of `COutput`s by `OutputType` for more convenient access
2022-07-19Remove unused includes in rpc/fees.cppMacroFake
IWYU confirms that they are unused
2022-07-19Remove unused includes from dbwrapper.hMacroFake
2022-07-19Add missing includesMacroFake
They are needed, otherwise the next commit will not compile
2022-07-19Add missing includes to node/chainstateMacroFake
This is needed for the next commit
2022-07-19Merge bitcoin/bitcoin#25641: Fix `-Wparentheses` gcc warningMacroFake
d68ca4ef64405d0d7c628a71d0f2bbae68e63cda Fix `-Wparentheses` gcc warning (Hennadii Stepanov) Pull request description: This PR fixes `-Wparentheses` gcc warning which has been introduced in bitcoin/bitcoin#25624. On the master branch (6d8707b21d3a5b4abb76b773a69f2bfac22bcd93): ``` $ gcc --version gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0 Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ make > /dev/null In file included from ./net.h:29, from ./net_processing.h:9, from test/fuzz/txorphan.cpp:7: test/fuzz/txorphan.cpp: In lambda function: test/fuzz/txorphan.cpp:116:70: warning: suggest parentheses around comparison in operand of β€˜==’ [-Wparentheses] 116 | Assert(!have_tx == GetTransactionWeight(*tx) > MAX_STANDARD_TX_WEIGHT); | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ ./util/check.h:74:50: note: in definition of macro β€˜Assert’ 74 | #define Assert(val) inline_assertion_check<true>(val, __FILE__, __LINE__, __func__, #val) | ^~~ ``` ACKs for top commit: MarcoFalke: ACK d68ca4ef64405d0d7c628a71d0f2bbae68e63cda Tree-SHA512: 5c98df4d6a6124d048b16eb3caf29bb396223d3394c1f48efc0fe0c8fd334d67dbf64d0b2e40faf9eda6f6a537885abcff05c61e410cfb317737e3dc361791ee
2022-07-19depends: modify FastFixedDtoa optimisation flagsfanquake
This fixes a non-determinism issue in the asm produced for this function when cross-compiling on x86_64 and aarch64 for the arm-linux-gnueabihf HOST. Related to #21194.
2022-07-19rpc: output parent wallet descriptors for coins in listunspentAntoine Poinsot
2022-07-19rpc: output wallet descriptors for received entries in listsinceblockAntoine Poinsot
The descriptor wallets allow an application to track coins of multiple descriptors in a single wallet. However, such an application would not previously be able to (easily) tell what received coin "belongs" to what descriptor. This commit tackles this issues by adding a "wallet_desc" entry to the entries for received coins in 'listsinceblock'.
2022-07-19Merge bitcoin/bitcoin#25629: univalue: Return more detailed type check error ↡fanquake
messages fae5ce8795080018875227aee8613677f92e99ce univalue: Return more detailed type check error messages (MacroFake) fafab147e7ff41ab1b961349f20a364f6bf847d2 move-only: Move UniValue::getInt definition to keep class with definitions only (MacroFake) Pull request description: Print the current type and the expected type ACKs for top commit: aureleoules: ACK fae5ce8795080018875227aee8613677f92e99ce. Tree-SHA512: 4ae720a012ff8245baf5cd7f844f93b946c58feebe62de6dfd84ebc5c8afb988295a94de7c01aef98aaf4c6228f7184ed622f37079c738924617e0f336ac5b6e
2022-07-19spkman: don't ignore the return value when deriving an extended keyAntoine Poinsot
2022-07-19Fix `-Wparentheses` gcc warningHennadii Stepanov
2022-07-19Merge bitcoin-core/gui#631: Disallow encryption of watchonly walletsHennadii Stepanov
4c495413e138ec1dd6874e41b44e689f0c15e0e3 Disallow encryption of watchonly wallets (Andrew Chow) Pull request description: Watchonly wallets do not have any private keys to encrypt. It does not make sense to encrypt such wallets, so disable the option to encrypt them. This avoids an assertion that can be hit when encrypting watchonly descriptor wallets. As our current behavior allows for encrypting watchonly wallets (no crash with legacy, crash, but still encrypted with descriptors), the new `NoKeys` status is only returned for unencrypted watchonly wallets. This allows any watchonly wallets that were previously encrypted to show the correct encryption status (they have encryption keys, and so should be indicated as being encrypted). ACKs for top commit: w0xlt: tACK https://github.com/bitcoin-core/gui/pull/631/commits/4c495413e138ec1dd6874e41b44e689f0c15e0e3 hebasto: ACK 4c495413e138ec1dd6874e41b44e689f0c15e0e3, tested on Ubuntu 22.04. Tree-SHA512: 054dba0a8c1343a0df17689508cd628a974555828955a3c8820bf020868b95a3df98c47253b0ffe2252765b020160bb76ea21647d76d59ba748b3b41c481f2ae
2022-07-19Merge bitcoin/bitcoin#25590: wallet: Precompute Txdata after setting PSBT ↡MacroFake
inputs' UTXOs d2ed97656bba050051cfc677f1fa7eb3fc633f7d wallet: Precompute Txdata after setting PSBT inputs' UTXOs (Andrew Chow) Pull request description: If we are given a PSBT that is missing one or more input UTXOs, our PrecomputedTransactionData will be incorrect and missing information that it should otherwise have, and therefore we may not produce a signature when we should. To avoid this problem, we can do the precomputation after we have set the UTXOs the wallet is able to set for the PSBT. Also adds a test for this behavior. ACKs for top commit: instagibbs: reACK https://github.com/bitcoin/bitcoin/pull/25590/commits/d2ed97656bba050051cfc677f1fa7eb3fc633f7d Sjors: ACK d2ed97656bba050051cfc677f1fa7eb3fc633f7d aureleoules: ACK d2ed97656bba050051cfc677f1fa7eb3fc633f7d. Tree-SHA512: 71beb6c7946096e82cfca83f36277302aa9e69d27b4f6d73d7d8f2f9f0ea1c0d653e846fa6aebee5e4763f56f950b4481240e953f6a2412caa84908d519171e1
2022-07-19guix: Drop repetition of option's default valueHennadii Stepanov
2022-07-19refactor: Use chainman() helper consistently in ChainImplMacroFake
2022-07-19Merge bitcoin/bitcoin#25612: depends: default to using GCC tool wrappers for ↡fanquake
LTO (with GCC) 658685af935e89ddd2ca326b3e13e271d166014d depends: default to using GCC tool wrappers (with GCC) (fanquake) 6fdc13c61f0e5ef6be0c03fa475741ab2cd57672 build: Fix autoconf variable names for tools found by `AC_PATH_TOOL` (Hennadii Stepanov) Pull request description: This improves support for LTO by using gcc wrappers for `ar`, `nm`, `ranlib`, that correctly setup plugin arguments for LTO, when using GCC. Other HOSTS are using clang. Portion of #25391. Guix Build (x86_64): ```bash ``` Guix Build (arm64): ```bash ``` ACKs for top commit: dongcarl: Code Review ACK 658685af935e89ddd2ca326b3e13e271d166014d hebasto: ACK 658685af935e89ddd2ca326b3e13e271d166014d jarolrod: ACK 658685af935e89ddd2ca326b3e13e271d166014d Tree-SHA512: 28d6127c118f74336c97e2523117f8a0d11b32cd565124cd4052baeb7cc53e71909d3037cb080d996ae4e3ce600326fced37ee36adcc53d839ba7dd7974ebcd2
2022-07-19Merge bitcoin/bitcoin#25466: ci: add unused-using-decls to clang-tidyMacroFake
a02f3f19f52e628248f81acc2410e67f3d49baf5 tidy: use misc-unused-using-decls (fanquake) d6787bc19b1032d3f46a60625105f30199c41b00 refactor: remove unused using directives (fanquake) 3617634324d647956c621db407db6d82a91b91ec validation: remove unused using directives (eugene) Pull request description: Adds https://clang.llvm.org/extra/clang-tidy/checks/misc/unused-using-decls.html to our clang-tidy. PR'd after the discussion in #25433 (which it includes). ACKs for top commit: jamesob: Github ACK https://github.com/bitcoin/bitcoin/pull/25466/commits/a02f3f19f52e628248f81acc2410e67f3d49baf5 Tree-SHA512: 2bb937c1cc90006e69054458d845fb54f287567f4309c773a3fc859f260558c32ff51fc1c2ce9b43207426f3547e7ce226c87186103d741d5efcca19cd355253
2022-07-19Merge bitcoin/bitcoin#25514: net processing: Move CNode::nServices and ↡MacroFake
CNode::nLocalServices to Peer 8d8eeb422e64ccd08bce92eed2ee9cbbf55ffd67 [net processing] Remove CNode::nLocalServices (John Newbery) 5961f8eea1ad5be1a4bf8da63651e197a20359b2 [net] Return CService from GetLocalAddrForPeer and GetLocalAddress (dergoegge) d9079fe18dc5d81ce290876353555b51125127d1 [net processing] Remove CNode::nServices (John Newbery) 7d1c0369340cb752f0d78e24f4251595534bf5e9 [net processing] Replace fHaveWitness with CanServeWitnesses() (John Newbery) f65e83d51bfb6a34f1d5efccfb3d8786a51a4534 [net processing] Remove fClient and m_limited_node (John Newbery) fc5eb528f7d7b33e2f2e443c5610a1551c7f099b [tests] Connect peer in outbound_slow_chain_eviction by sending p2p messages (John Newbery) 1f52c47d5c09b59fd3153700751c74e63edc7d7e [net processing] Add m_our_services and m_their_services to Peer (John Newbery) Pull request description: Another step in #19398. Which services we offer to a peer and which services they offer to us is application layer data and should not be stored on `CNode`. This is also a prerequisite for adding `PeerManager` unit tests (See #25515). ACKs for top commit: MarcoFalke: ACK 8d8eeb422e64ccd08bce92eed2ee9cbbf55ffd67 πŸ”‘ jnewbery: utACK 8d8eeb422e64ccd08bce92eed2ee9cbbf55ffd67 mzumsande: Code Review ACK 8d8eeb422e64ccd08bce92eed2ee9cbbf55ffd67 Tree-SHA512: e772eb2a0a85db346dd7b453a41011a12756fc7cbfda6a9ef6daa9633b9a47b9770ab3dc02377690f9d02127301c3905ff22905977f758bf90b17a9a35b37523
2022-07-18Merge bitcoin/bitcoin#23997: wallet: avoid rescans under assumed-valid blocksAndrew Chow
817326a828d6148dc63d9ef08f641b9c0c522411 wallet: avoid rescans if under the snapshot (James O'Beirne) Pull request description: This is part of the [assumeutxo project](https://github.com/bitcoin/bitcoin/projects/11) (parent PR: #15606) --- Refuse to load a wallet if it requires a rescan lower than the height of assumed-valid blocks. Of course in live code right now, `BLOCK_ASSUMED_VALID` block index entries don't exist since they're a unique flag introduced by the use of UTXO snapshots, so this is prophylactic code exercised only by unittests. ACKs for top commit: achow101: ACK 817326a828d6148dc63d9ef08f641b9c0c522411 ryanofsky: Code review ACK 817326a828d6148dc63d9ef08f641b9c0c522411. This seems like the simplest change we can make to avoid wallet problems when an assumeutxo snapshot is loaded. Tree-SHA512: cfa44b2eb33d1818d30df45210d0dde1e9b78cc9b7c88cb985054dc28427bba9e0905debe4196065d1d3a5ce7bca7e605e629d5ce5f0225b25395746e6d3d596
2022-07-18indexes, refactor: Remove CChainState use in index CommitInternal methodRyan Ofsky
Replace CommitInternal method with CustomCommit and use interfaces::Chain instead of CChainState to generate block locator. This commit does not change behavior in any way, except in the (m_best_block_index == nullptr) case, which was added recently in https://github.com/bitcoin/bitcoin/pull/24117 as part of an ongoing attempt to prevent index corruption if bitcoind is interrupted during startup. New behavior in that case should be slightly better than the old behavior (skipping the entire custom+base commit now vs only skipping the base commit previously) and this might avoid more cases of corruption.
2022-07-18indexes, refactor: Remove CBlockIndex* uses in index Rewind methodsRyan Ofsky
Replace Rewind method with CustomRewind and pass block hashes and heights instead of CBlockIndex* pointers This commit does not change behavior in any way.
2022-07-18indexes, refactor: Remove CBlockIndex* uses in index WriteBlock methodsRyan Ofsky
Replace WriteBlock method with CustomAppend and pass BlockInfo struct instead of CBlockIndex* pointer This commit does not change behavior in any way.
2022-07-18indexes, refactor: Remove CBlockIndex* uses in index Init methodsRyan Ofsky
Replace overriden index Init() methods that use the best block CBlockIndex* pointer with pure CustomInit() callbacks that are passed the block hash and height. This gets rid of more CBlockIndex* pointer uses so indexes can work outside the bitcoin-node process. It also simplifies the initialization call sequence so index implementations are not responsible for initializing the base class. There is a slight change in behavior here since now the best block pointer is loaded and checked before the custom index init functions are called instead of while they are called.
2022-07-18indexes, refactor: Remove CBlockIndex* uses in coinstatsindex LookUpOne functionRyan Ofsky
This commit does not change behavior in any way.