Linter: remove trailing whitespace - #1572
Merged
Merged
Conversation
delta1
approved these changes
Jul 13, 2026
delta1
added a commit
that referenced
this pull request
Aug 5, 2026
cd384f0 additional fixes for CI (Tom Trevethan) e57cfea no-rpath in qt dependency (Tom Trevethan) 3da0ed8 functional test fixes and no RUNPATH in linux builds (Tom Trevethan) 292a937 CI fixes (Tom Trevethan) 88cd3a7 doc: update manual pages for v29.4rc1 (fanquake) 116565b build: bump version to v29.4rc1 (fanquake) d82afa9 doc: update release notes for v29.4rc1 (fanquake) ea8fafd fuzz: Remove unused g_setup pointers (MarcoFalke) 1907b3f coins: compact chainstate in background (Lőrinc) 9dd8e32 validation: randomly compact chainstate (Lőrinc) e0ab4cf coins: test chainstate flush baseline (Lőrinc) 53a5c7f lint: disable leveldb subtree check (fanquake) d8da418 doc: update release notes for v29.x (fanquake) 9d62f5d ci: use ubuntu-latest instead of ubuntu-24.04 (fanquake) 33dd5e7 doc: remove reference to cirrus (fanquake) 1907ee0 ci: switch runners from cirrus to warpbuild (will) b631f27 Disable seek compaction (Andrew Toth) e5613db depends: Unset `SOURCE_DATE_EPOCH` in `gen_id` script (Hennadii Stepanov) 005738e wallet: use outpoint when estimating input size (Lőrinc) 4e3dd13 doc: mention -DWITH_ZMQ=ON in BSD build guides (junbyjun1238) 9ad085b validation: correct lifetime of precomputed tx data (Antoine Poinsot) 83b4650 doc: update release notes for v29.x (fanquake) 18739ec ci: unconfine seccomp for i686 no IPC (Lőrinc) 546598b multi_index: fix compilation failure with boost >= 1.91 (Cory Fields) 0fb5e16 cmake: Migrate away from deprecated SQLite3 target (Daniel Pfeifer) 98ea6ca doc: update release notes for v29.x (fanquake) 490cd87 netif: fix compilation warning in QueryDefaultGatewayImpl() (MarcoFalke) 98af76f wallet: rpc: manpage: fix example missing `fee_rate` argument (SomberNight) 532afe9 doc: Update Guix install for Debian/Ubuntu (MarcoFalke) 5910bd3 doc: fix broken bpftrace installation link (jayvaliya) c9a7bd9 doc: Update man pages for v29.3 (sedited) ea6af54 doc: Update release notes for 29.3 (sedited) 824de1e build: Bump version to 29.3 (sedited) 2b2c4da [doc] generate manpages 29.3rc2 (sedited) 75c2108 [doc] update release notes for 29.3rc2 (sedited) 16493e3 Bump version to 29.3rc2 (sedited) 340b58a Add sedited to trusted-keys (sedited) 6517394 QA: tool_wallet: Check that db.log is deleted with a lone legacy wallet, but not with a shared db environment (Luke Dashjr) 69a6b9b Bugfix: Wallet/Migration: Move backup into wallet directory when migrating from non-directory (Luke Dashjr) cef01d0 Wallet/Migration: Skip moving the backup file back and forth for no reason (Luke Dashjr) 60f5290 Wallet/Migration: If loading the new watchonly or solvables wallet fails, log the correct wallet name in error message (Luke Dashjr) 7475d13 Wallet/bdb: Safely and correctly list files only used by the single wallet (Luke Dashjr) 3835e16 doc: update release notes for v29.x (fanquake) 6aec095 ci: remove 3rd party js from windows dll gha job (Max Edwards) c57009e chore: Update outdated GitHub Actions versions (Padraic Slattery) b834447 [doc] generate manpages 29.3rc1 (glozow) e9c9783 [build] bump version to 29.3rc1 (glozow) e973b61 [doc] update release notes for 29.3rc1 (glozow) f4b78c4 test: Add a test for anchor outputs in the wallet (Ava Chow) c6e7765 wallet: Throw an error in sendall if the tx size cannot be calculated (Ava Chow) bab1ac8 wallet: Determine IsFromMe by checking for TXOs of inputs (Ava Chow) 71633a9 test: Test wallet 'from me' status change (Ava Chow) daef585 guix: Fix `osslsigncode` tests (Hennadii Stepanov) 7a71850 Remove unreliable seed from chainparams.cpp, and the associated README (SatsAndSports) 2e46886 miner: fix `addPackageTxs` unsigned integer overflow (ismaelsadeeq) 6f136cd tests: drop expect_disconnect behaviour for tx relay (Anthony Towns) be08577 validation: only check input scripts once (Anthony Towns) 65bcbbc net_processing: drop MaybePunishNodeForTx (Anthony Towns) f24291b qa: unit test sighash caching (Antoine Poinsot) 73d3ab8 qa: simple differential fuzzing for sighash with/without caching (Antoine Poinsot) ddfb915 script: (optimization) introduce sighash midstate caching (Pieter Wuille) 354d46b script: (refactor) prepare for introducing sighash midstate cache (Pieter Wuille) 5a0506e tests: add sighash caching tests to feature_taproot (Pieter Wuille) 020ed61 validation: detect witness stripping without re-running Script checks (Antoine Poinsot) 5662630 policy: introduce a helper to detect whether a transaction spends Segwit outputs (Antoine Poinsot) 97088fa qa: test witness stripping in p2p_segwit (Antoine Poinsot) 76cdeb7 wallet: test: Failed migration cleanup (David Gumberg) 9405e91 test: coverage for migration failure when last sync is beyond prune height (furszy) 5e8ad98 wallet: migration, fix watch-only and solvables wallets names (furszy) a7e2d10 wallet: improve post-migration logging (furszy) 9ea84c0 test: restorewallet, coverage for existing dirs, unnamed wallet and prune failure (furszy) 833848e test: add coverage for unnamed wallet migration failure (furszy) a074d36 wallet: fix unnamed wallet migration failure (furszy) d91f56e wallet: RestoreWallet failure, erase only what was created (furszy) cc324aa wallettool: do not use fs::remove_all in createfromdump cleanup (Ava Chow) 01c04d3 wallet: introduce method to return all db created files (furszy) abaf1e3 refactor: remove sqlite dir path back-and-forth conversion (furszy) 2cf352f doc: document capnproto and libmultiprocess deps (will) 4917d0c doc: update release notes for 29.x (fanquake) 554ff3f test: change log rate limit version gate from 299900 to 290100 (Eugene Siegel) 16e10f9 ci: expose all ACTIONS_* vars (willcl-ark) c7979f4 ci: Properly include $FILE_ENV in DEPENDS_HASH (Ava Chow) 46d9b90 doc: update manual pages for v29.2 (fanquake) b2026fa build: bump version to v29.2 (fanquake) 3226616 doc: update release notes for 29.2 (fanquake) abf4a6e build: fix depends Qt download link (fanquake) d82fc69 doc: update release notes for 29.2rc2 (fanquake) 513cef7 doc: update manual pages for v29.2rc2 (fanquake) eea16f7 build: bump version to v29.2rc2 (fanquake) 6b3c1db contrib: fix using macdploy script without translations. (amisha) 2d7ebd2 doc: update release notes for 29.x (fanquake) a8bb76b test: add more TRUC reorg coverge (Greg Sanders) 666aec7 Mempool: Do not enforce TRUC checks on reorg (Greg Sanders) 6f23ead fuzz: don't bypass_limits for most mempool harnesses (Greg Sanders) 9d9baaf doc: rpc: fix case typo in `finalizepsbt` help (final_scriptwitness) (Sebastian Falbesoner) 22ab141 rpc: fix getblock(header) returns target for tip (Sjors Provoost) 118abf4 test: add block 2016 to mock mainnet (Sjors Provoost) 5750355 ci: link against -lstdc++ in native fuzz with msan job (fanquake) 78d93ef ci: Checkout latest merged pulls (MarcoFalke) 4a034cb ci: reduce runner sizes on various jobs (will) 6ded1fe ci: remove un-needed lint_run*.sh files (willcl-ark) 4e8b64b ci: fix annoying docker warning (will) 773e4cd ci: add ccache hit-rate warning when < 75% (will) 4339787 doc: Detail configuration of hosted CI runners (will) c7f290b ci: dynamically match makejobs with cores (will) a08c3cc ci: remove .cirrus.yml (will) 06424fb ci: port lint (will) 0f0378f ci: port msan-depends (will) 643385b ci: port tsan-depends (will) 3b2dcc8 ci: port tidy (will) b4286cf ci: port centos-depends-gui (will) 5057b9a ci: port previous-releases-depends-debug (will) 85ec6c6 ci: port fuzzer-address-undefined-integer-nodepends (will) 544f902 ci: port i686-multiprocess-DEBUG (will) e826c3d ci: port nowallet-libbitcoinkernel (will) 835b5b8 ci: port mac-cross-gui-notests (will) a91567a ci: force reinstall of kernel headers in asan (will) 819ee09 ci: update asan-lsan-ubsan (will) 894a3cb ci: update windows-cross job (will) 82c60a3 ci: port arm 32-bit job (will) 8499933 ci: add job to determine runner type (will) f9f3e8b ci: add Cirrus cache host (will) af08643 ci: have base install run in right dir (will) 0a649d0 ci: use docker build cache arg directly (will) f3089fb ci: use buildx in ci (will) 1faf918 ci: add configure-docker action (will) 954c1a5 ci: add REPO_USE_CIRRUS_RUNNERS (will) 301aa5d ci: add caching actions (will) f63b8e9 ci: add configure environment action (will) f2bd79f doc: update manual pages for v29.2rc1 (fanquake) 461dd13 build: bump version to v29.2rc1 (fanquake) 9bc4afb doc: update release notes for 29.x (fanquake) 61cdc04 net: Do not apply whitelist permission to onion inbounds (Martin Zumsande) 1288d44 test: send duplicate blocktxn message in p2p_compactblocks.py (Eugene Siegel) 569ceb0 net: check for empty header before calling FillBlock (Eugene Siegel) 4c940d4 p2p: remove vestigial READ_STATUS_CHECKBLOCK_FAILED (Greg Sanders) 9b95ab5 p2p: Add witness mutation check inside FillBlock (Greg Sanders) e97588f trace: Workaround GCC bug compiling with old systemtap (Luke Dashjr) 324caa8 ci: always use tag for LLVM checkout (fanquake) 2717331 Fix benchmark CSV output (Hennadii Stepanov) 7c6be9a doc: update release notes for 29.x (fanquake) ea40fa9 ci: use LLVM 21 (fanquake) 5513516 ci: remove DEBUG_LOCKORDER from TSAN job (fanquake) f9939cd ci: instrument libc++ in TSAN job (fanquake) 0fba5ae ci: allow libc++ instrumentation other than msan (fanquake) 10cbf22 ci: Use APT_LLVM_V in msan task (MarcoFalke) 084c95a doc: update manual pages for v29.1 (fanquake) 37d115c build: bump version to v29.1 final (fanquake) b0d88bc doc: finalise release notes for 29.1 (fanquake) 99ab2e7 ci: return to using dash in CentOS job (fanquake) 6448ebb doc: Remove wrong and redundant doxygen tag (MarcoFalke) fcac802 test: index with an unclean restart after a reorg (Martin Zumsande) 16b1710 index: don't commit state in BaseIndex::Rewind (Martin Zumsande) 65dc198 doc: update example bitcoin conf for 29.1rc2 (fanquake) 0034dcf [doc] man pages for 29.1rc2 (glozow) eb1574a [build] bump version to 29.1rc2 (glozow) f9f1ca5 [doc] update release notes (glozow) 9dd7efc [policy] lower default minrelaytxfee and incrementalrelayfee to 100sat/kvB (glozow) bbdab3e [prep/test] make wallet_fundrawtransaction's minrelaytxfee assumption explicit (glozow) da30ca0 [prep/util] help MockMempoolMinFee handle more precise feerates (glozow) a0ae3fc [prep/test] replace magic number 1000 with respective feerate vars (glozow) 1c1970f [miner] lower default -blockmintxfee to 1sat/kvB (glozow) 3a7e093 [doc] assert that default min relay feerate and incremental are the same (glozow) 567c3ee [test] explicitly check default -minrelaytxfee and -incrementalrelayfee (glozow) 6b5396c [test] RBF rule 4 for various incrementalrelayfee settings (glozow) 03da7af [test] check bypass of minrelay for various minrelaytxfee settings (glozow) 4e3cfa6 [test] check miner doesn't select 0fee transactions (glozow) 0022e25 test: modify logging_filesize_rate_limit params (Eugene Siegel) 206f590 config: add DEBUG_ONLY -logratelimit (Eugene Siegel) dfdd407 test: logging_filesize_rate_limit improvements (stickies-v) 1153816 test: don't leak log category mask across tests (stickies-v) 4ed7a51 test: add ReadDebugLogLines helper function (stickies-v) acfa83d log: make m_limiter a shared_ptr (stickies-v) 8175134 log: clean up LogPrintStr_ and Reset, prefix all logs with "[*]" when there are suppressions (Eugene Siegel) 7c3820f log: change LogLimitStats to struct LogRateLimiter::Stats (Eugene Siegel) dfe4e19 log: clarify RATELIMIT_MAX_BYTES comment, use RATELIMIT_WINDOW (Eugene Siegel) 273ffda log: remove const qualifier from arguments in LogPrintFormatInternal (Eugene Siegel) 9cde68f log: avoid double hashing in SourceLocationHasher (Eugene Siegel) 25f975b test: remove noexcept(false) comment in ~DebugLogHelper (Eugene Siegel) 24c793d doc: add release notes for new rate limiting logging behavior (Eugene Siegel) 0b6b096 log: Add rate limiting to LogPrintf, LogInfo, LogWarning, LogError, LogPrintLevel (Eugene Siegel) a0992a8 log: use std::source_location in place of __func__, __FILE__, __LINE__ (Eugene Siegel) 41262cc log: introduce LogRateLimiter, LogLimitStats, Status (Eugene Siegel) 4987c03 test: Mark ~DebugLogHelper as noexcept(false) (Eugene Siegel) b9e637b doc: update release notes for 29.x (fanquake) 2b9738a test: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify 'spend_vin' is the correct field (Chris Stewart) 4e8abca rpc: fix getpeerinfo ping duration unit docs (0xb10c) a08886d doc: move `cmake -B build -LH` up in Unix build docs (Bufo) 264418f doc: Add rel note for breaking change in dumptxoutset RPC (Chris Stewart) a18b53f guix: warn SOURCE_DATE_EPOCH set in guix-codesign (will) 9437415 tracing: fix pointer argument handling in mempool_monitor.py (deadmanoz) 3cd8612 doc/zmq: fix unix socket path example (Roman Zeyde) 4c2d285 [doc] update release notes for v29.1rc1 (glozow) 06eb42d [doc] manpages for 29.1rc1 (glozow) 735ffad [build] bump version to 29.1rc1 (glozow) f25dc84 doc: update release notes for 29.x (Antoine Poinsot) 3130233 qa: functional test a transaction running into the legacy sigop limit (Antoine Poinsot) 0a4671d qa: unit test standardness of inputs packed with legacy sigops (Antoine Poinsot) 204b965 policy: make pathological transactions packed with legacy sigops non-standard. (Antoine Poinsot) 194c43a Merge #1572: Linter: remove trailing whitespace (merge-script) c6fe697 doc: update release notes for 29.x (fanquake) 380b5ad test: fix intermittent failure in wallet_reorgsrestore.py (furszy) 411e151 doc: update release notes for 29.x (fanquake) 5e327e6 test: Log KeyboardInterrupt as exception (MarcoFalke) 79e1a3c test: Do not pass tests on unhandled exceptions (MarcoFalke) 5300295 doc: update release notes for 29.x (fanquake) 730886b depends: fix libevent _WIN32_WINNT usage (fanquake) f798c31 cmake: Drop no longer necessary "cmakeMinimumRequired" object (Hennadii Stepanov) bc2147c depends: Force `CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE` (Hennadii Stepanov) 58b1a65 add more bad p2p ports (Jameson Lopp) f85d41c test: retain the intended behavior of `feature_fee_estimation.py` nodes (ismaelsadeeq) 84c0c0e test: fix incorrect subtest in `feature_fee_estimation.py` (ismaelsadeeq) 83ee49b doc: clarify that the "-j N" goes after the "--build build" part (Salvatore Ingala) e5a7575 doc: Add workaround for vcpkg issue with paths with embedded spaces (Hennadii Stepanov) 59a83fb functional test: correctly detect nonstd TRUC tx vsize in feature_taproot (Greg Sanders) 9f3690b feature_taproot: sample tx version border values more (Greg Sanders) 8a4a938 depends: Override host compilers for FreeBSD and OpenBSD (Hennadii Stepanov) 3a57bfa test: Use rehash() in outbound eviction block-relay (pablomartin4btc) f82015c test: Clarify roles in outbound eviction comments (pablomartin4btc) 222fbfc test: check P2SH sigop count for coinbase tx (brunoerg) ef2a013 doc: update release notes for 29.x (fanquake) 4b656e2 test: Add msgtype to msg_generic slots (dergoegge) 1c0e19b node: cap -dbcache to 1GiB on 32-bit architectures (Antoine Poinsot) eafea23 init: cap -maxmempool to 500 MB on 32-bit systems (Antoine Poinsot) a3c1939 cmake: Explicitly specify `Boost_ROOT` for Homebrew's package (Hennadii Stepanov) a990c10 cmake: Use `HINTS` instead of `PATHS` in `find_*` commands (Hennadii Stepanov) 5987c1b test: fix catchup loop in outbound eviction functional test (Sebastian Falbesoner) e37a70b build: add root dir to CMAKE_PREFIX_PATH (will) 0922f6b doc: update release notes for 29.x (fanquake) 5697605 contrib: tracing: Correctly read msg type in p2p_monitor.py (David Gumberg) 4c7ed36 test: Fix list index out of range error in feature_bip68_sequence.py (zaidmstrr) 3e23b47 doc: fix transifex 404s (fanquake) 616baf3 doc: taproot became always active in v24.0 (Sjors Provoost) ef6111b depends: capnp 1.2.0 (fanquake) 8246c6a test: wallet, coverage for crash on dup block disconnection during unclean shutdown (Martin Zumsande) a18085a wallet: fix crash on double block disconnection (furszy) 7264459 build: patch cmake min version on freetype (josibake) 27c5330 doc, windows: CompanyName "Bitcoin" => "Bitcoin Core project" (Hodlinator) 1b51d75 depends: fix SHA256SUM command on OpenBSD (use GNU mode output) (Sebastian Falbesoner) aea8a39 doc: make `-DWITH_ZMQ=ON` explicit on `build-unix.md` (Luis Schwab) 23e76ef guix: warn and abort when SOURCE_DATE_EPOCH is set (will) 876a7b2 doc: add missing packages for BSDs (cmake, gmake, curl) to depends/README.md (Sebastian Falbesoner) 78688c8 rpc, doc: update `listdescriptors` RCP help (rkrux) c899334 rpc: Note in fundrawtransaction doc, fee rate is for package (benthecarman) 247ee59 doc: update tor docs to use bitcoind binary from path (ismaelsadeeq) 4a1143b depends: use "mkdir -p" when installing xproto (fanquake) 646fa1d test: fix sync function in rpc_psbt.py (Martin Zumsande) 17b31fc doc: Add missing top-level description to pruneblockchain RPC (nervana21) e34b6fb guix: accomodate migration to codeberg (fanquake) 142153e cmake: Add missed `SSE41_CXXFLAGS` (Hennadii Stepanov) a0d1f69 doc: update release notes for 29.x (fanquake) 6c0f26d test: check that creating a wallet does not log version info (Ava Chow) e685b4e test: Check that the correct versions are logged on wallet load (Ava Chow) 25aa15e walletdb: Log the wallet version after it has been read from disk (Ava Chow) cf03417 test: fix another intermittent failure in wallet_basic.py (Martin Zumsande) c966158 test: Fix intermittent failure in wallet_basic.py (Martin Zumsande) 6c4e3de test: Use uninvolved pruned node in feature_pruning undo test (enoch) edd4073 test: Fix nTimes typo in feature_pruning test (enoch) cc2fcdf cmake: Allow `WITH_DBUS` on all Unix-like systems (Hennadii Stepanov) caec3cc crypto: disable ASan for sha256_sse4 with Clang (fanquake) fabf4ff tracing: fix invalid argument in mempool_monitor (William Casarin) f9d2c67 cmake: Respect user-provided configuration-specific flags (Hennadii Stepanov) 6ed087d doc: Fix test_bitcoin path (monlovesmango) 2f6c802 doc: Fix fuzz test_runner.py path (monlovesmango) f4d9546 qt: Replace stray tfm::format to cerr with qWarning (laanwj) 5aa4956 gui: crash fix, disconnect numBlocksChanged() signal during shutdown (furszy) 3665310 scripted-diff: Use bpf_cflags (MarcoFalke) 4ed5c34 test: Add imports for util bpf_cflags (MarcoFalke) 3dbd2b3 refactor: Remove spurious virtual from final ~CZMQNotificationInterface (MarcoFalke) 64552c8 ci: Add workaround for vcpkg's libevent package (Hennadii Stepanov) 85f3e1d test: Handle empty string returned by CLI as None in RPC tests (Brandon Odiwuor) ca70d5c Remove support for RNDR/RNDRRS for aarch64 on Linux (laanwj) fc60337 qt: 29.1 translations update (Hennadii Stepanov) 87e5378 doc: minor rel notes changes (fanquake) 977db54 [doc] update man pages for 29.0 (glozow) 190e718 [build] bump to 29.0 final (glozow) 5010810 [doc] copy over Release Notes draft from wiki (glozow) f80ab9a [doc] update man pages for 29.0rc3 (glozow) 7c05ef5 [build] bump to 29.0rc3 (glozow) c0756b7 depends: set CMAKE_*_COMPILER_TARGET in toolchain (fanquake) 4773452 cmake: Add `NO_CACHE_IF_FAILED` option for checking linker flags (Hennadii Stepanov) 7bc7af9 fuzz: extract unsequenced operations with side-effects (Lőrinc) 288163e fuzz: Fix off-by-one in package_rbf target (MarcoFalke) a306048 test: avoid disk space warning for non-regtest (Sjors Provoost) 74df31c [doc] update example bitcoin.conf with missing options (glozow) 8082f88 [doc] update man pages for 29.0rc2 (glozow) 472d582 [build] bump to 29.0rc2 (glozow) a4c30bd qt: doc: adapt outdated binary paths to CMake changes (Sebastian Falbesoner) 4e438d3 build: use make < 3.82 syntax for define directive (Sjors Provoost) 7ff0b02 build: Remove manpages when making MacOS app (Ava Chow) 5ebcb59 test: fix intermittent failure in p2p_orphan_handling.py (Martin Zumsande) 458655b fuzz: make sure DecodeBase58(Check) is called with valid values more often (Lőrinc) 15ecae3 fuzz: Always restrict base conversion input lengths (Lőrinc) 80c5d57 contrib: Fix `gen-bitcoin-conf.sh`. (David Gumberg) 47e2fa8 [doc] release notes link for 29.0 (glozow) 21f4239 [examples] generate example bitcoin.conf (glozow) 86a3ce6 [doc] update man pages for 29.0rc1 (glozow) 95c21b1 [build] bump version to 29.0rc1 (glozow) 153bd44 [build] bump CLIENT_VERSION_MAJOR to 29 (glozow) 713da86 add linter check to CI (Tom Trevethan) bd2dbdc Fix: linter errors (Tom Trevethan) 0ee8558 Squashed 'src/secp256k1/' content from commit 95b983597a (Tom Trevethan) e5d02b9 fix RPC documentation inconsistencies (Tom Trevethan) a58014a rpc: fix fields describtion in man (Ruslan Kasheparov) 0e0d019 mempool: disable full-RBF, require BIP125 opt-in signaling (Byron Hambly) ef1d267 rpc: fix fields type in man in 'decodepsbt' (Ruslan Kasheparov) 91ae0e9 rpc: fix fields describtion in man in 'decodepsbt' (Ruslan Kasheparov) e151cad test: update and re-enable trim headers functional test (Byron Hambly) 3824d7d add guard to TryLowWorkHeadersSync to prevent assert_untrimmed (Tom Trevethan) 14a52bf rpc: use null for optional parameters (Ruslan Kasheparov) 8165ec8 rpc: fix fields type in man (Ruslan Kasheparov) 556c261 descriptor wallet option in GUI unchecked by default (Tom Trevethan) c4680ed re-enable add checks for CCheckQueueControl in connectblock (Tom Trevethan) cec3d1d gui: re-enable legacy wallet creation (Tom Trevethan) f29fe12 rename test_bitcoin to test_elements (Tom Trevethan) e1c714f remove deprecated rpc check for create_bdb wallets (Tom Trevethan) Pull request description: Upstream merges from Bitcoin 29.x to 29.4. Additional fixes for CI: ## 1. Merge setup & CI infrastructure - **Merge script sanity check** — confirmed all 42 upstream backport PRs (`e9e6825b8c`..`3fc0865963`) were merge commits with no stray non-merge first-parent commits; `merge-prs.sh` pointed at `elements-29.x`. - **CI migration, Cirrus CI → GitHub Actions** — resolved Docker/host environment conflicts, macOS path divergence (`~/.elements` vs `~/Library/Application Support/Elements`), subtree lint failures (`secp256k1`, `minisketch`), `test-each-commit` `FETCH_DEPTH` issues, Windows MSVC job config. - **`ci/test/03_test_script.sh`** — removed dead autotools-era code paths (`./autogen.sh`, `./configure`), rewrote to match upstream's CMake-only flow. - **doc/man generation** — resolved merge conflicts from upstream's `doc/man/bitcoin-*.1` vs Elements' `elements-*.1` naming; regenerate via `contrib/devtools/gen-manpages.py` at release time instead of merging. - **`contrib/devtools/check-deps.sh`** — added ~30 missing `SUPPRESS[...]` entries recording Elements-specific cross-module dependencies (confidential_validation, pegins, mainchainrpc, pak, dynafed, block_proof, versionbits) that upstream's dependency-graph checker had no knowledge of. - **CentOS/depends/GUI job — "No space left on device"** — infrastructure issue (disk/ccache exhaustion on the runner), not a code bug; not something fixable via source changes. - **`--exclude feature_dbcrash`** — `feature_dbcrash.py` is commented out of Elements' own `test_runner.py` test list (too disk/time-intensive for GHA); excluding an already-absent test is now a hard error in `test_runner.py`, not a no-op. Removed from the exclude list in `ci/test/00_setup_env_native_previous_releases.sh`. - **Same file — `--extended,feature_fee_estimation,...` argparse corruption** --- ## 2. RPATH — "libsecp256k1.so.6: cannot open shared object file" bug top-level `CMakeLists.txt` sets `CMAKE_SKIP_BUILD_RPATH TRUE` globally (deliberate upstream policy, tied to Guix reproducible builds). This is invisible under a normal (static-secp256k1) build, but any build enabling `libbitcoinkernel` forces secp256k1 to build as a shared library — and every other executable target then fails at runtime unless it gets the same opt-out. - `elements-tx`, `elements-util` (`src/CMakeLists.txt`) - `test_elements` (`src/test/CMakeLists.txt`) - `bench_bitcoin` (`src/bench/CMakeLists.txt`) - `elements-qt` (`src/qt/CMakeLists.txt`) - `test_elements-qt` (`src/qt/test/CMakeLists.txt`) - `elementsd` (`src/CMakeLists.txt`) - `elements-cli` (`src/CMakeLists.txt`) --- ## 3. Code/sanitizer bugs - **`CTxOut` 2-arg vs 3-arg constructor** — ported Bitcoin Core test/IPC code used upstream's `CTxOut(amount, script)`; fixed to Elements' `CTxOut(CAsset(), amount, script)` in `transaction_tests.cpp`, `test/ipc_test.cpp`. - **`checkqueue.h::Loop()` ownership bug** — failing/skipped-after-failure checks never `delete`d in Elements' pointer-based (`T*`) `CCheckQueue`; real leak reachable from production validation code. - **`spend.cpp` — `vtxinwit`/`vin` invariant violation** — `vtxinwit.emplace_back()` only ran inside a conditional branch; moved to run unconditionally alongside every `vin.emplace_back()`. - **`wallet.cpp::SignPSBT`** — missing `tx.witness.vtxinwit.resize(tx.vin.size())` (had the `vtxoutwit` equivalent but not the `vtxinwit` one); found via gdb backtrace. - **`coins.h::AddFlags`** — `Assume(flags & (DIRTY|FRESH))` didn't account for Elements' third `PEGIN` flag; fixed to `Assume(flags & (DIRTY|FRESH|PEGIN))`. - **`kernel/chainparams.h::CChainParams`** — missing virtual destructor; `new-delete-type-mismatch` deleting a `CCustomParams` through `unique_ptr<const CChainParams>`. - **`validation.cpp::CheckInputScripts` synchronous path** — leaked the heap-allocated `CScriptCheck` on every call (missing `delete`). - **`test/fuzz/deserialize.cpp`** — generic round-trip fuzz check inappropriately applied to `Coin`, which asserts `!IsSpent()` on serialize; fuzzed bytes trivially violate this. - **`test/fuzz/package_eval.cpp` — duplicate `tx_mut.vin.push_back(in)`** — an earlier fix (adding `vtxinwit.emplace_back()` alongside the `push_back`) was applied *additively* instead of *replacing* the original line, leaving every selected input pushed into `vin` twice. Traced via reproducible fuzz crash + gdb + targeted `fprintf` instrumentation to a `outpoints.insert(in.prevout).second` assertion failure; root-caused to the duplicate push, not (as initially suspected) `OutpointsUpdater` or cross-iteration state. - **`kernel/chainparams.cpp::CTestNet4Params`** — entire Elements-specific initialization block (`enforce_pak`, `accept_unlimited_issuances`, `multi_data_permitted`, `accept_discount_ct`, `create_discount_ct`, `pegin_subsidy`, `pegin_minimum`, `anyonecanspend_aremine`, `consensus.has_parent_chain`, `consensus.genesis_subsidy`, `consensus.connect_genesis_outputs`, `consensus.subsidy_asset`, `g_signed_blocks`) missing entirely — `testnet4` is a brand-new upstream 29.x chain type, and the new class was adapted from upstream's version (which has no concept of any of these fields) without ever adding Elements' equivalent block. Caught independently by both UBSan (`invalid-bool-load`) and MSan (`use-of-uninitialized-value`) in two separate CI jobs. - **`validation.cpp::GuessVerificationProgress`** — unguarded division (`pindex->nHeight / (pindex->nHeight + moreBlocksExpected)`) with a denominator that can hit exactly zero when a block's timestamp is far enough ahead of "now" (e.g. during `feature_taproot.py`'s test-vector generation). Added a guard clause returning `1.0` when the extrapolation is degenerate. - **`wallet/rpc/spend.cpp` — `psbtbumpfee` not-mine-input path** — `FillPSBT(...)` call omitted Elements' `imbalance_ok` parameter (defaults to `false`), causing a legitimate CT-balance-check failure for external/not-owned inputs to trip a `CHECK_NONFATAL(!err)` that assumed the call could never fail. Every other Elements-specific `FillPSBT` call site in the same file already passes `/*imbalance_ok=*/true`; this one didn't. Root-caused by diffing against upstream (confirmed the `CHECK_NONFATAL` pattern itself is unmodified) and against Elements' own `FillPSBT` declaration. - Fee outputs in USDT tests. --- ## 4. Type/size mismatches Several issues traced to `CoinsCachePair`/`Coin`/`CTxOut` being substantially larger than upstream's equivalents (confidential asset/value/nonce commitments), breaking constants and assumptions tuned for upstream's smaller structs: - **`CTxMemPoolEntry::discountSizeWithAncestors`** — declared `uint64_t` while its three sibling ancestor-state accumulators are `int64_t`; the odd type caused a UBSan `implicit-integer-sign-change` when a negative delta was added during removal. Retyped to `int64_t` to match siblings. - **Follow-up compile fix:** `GetDiscountTxSize()` returns `size_t`; brace-init into the now-`int64_t` member needed an explicit `static_cast<int64_t>(...)`. - Confirmed the six external call sites (`node/miner.h`, `node/miner.cpp`, `txmempool.h`) did **not** need changes — they only ever read the post-assert, always-non-negative value into `uint64_t`, which is a value-preserving conversion UBSan doesn't flag. - **`coins.h::CCoinsMapMemoryResource`** — `PoolResource`'s generic default constructor hardcodes a 256 KiB chunk, sized for upstream's smaller `CoinsCachePair`; no longer big enough to hold 1000 of Elements' larger nodes without overflowing into a second chunk. Fixed by passing an explicit `chunk_size_bytes` scaled to `sizeof(CoinsCachePair)`. - **Follow-up:** `validation_flush_tests.cpp`'s `getcoinscachesizestate` test hardcoded `MAX_COINS_CACHE_BYTES = 262144 + 512` based on the (now-stale) "PoolResource defaults to 256 KiB" assumption; updated to compute the same way as the fixed default. - **32-bit ARM `validation_flush_tests.cpp`** — the test's own "unsupported architecture" fallback path hardcoded `1000` coins as "obviously enough" to cross the CRITICAL cache-size threshold; doesn't hold on 32-bit ARM where `COIN_SIZE` is smaller (32-bit pointers). Fixed by computing the coin count from `MAX_COINS_CACHE_BYTES / COIN_SIZE` instead of a fixed constant. --- ## 5. Build configuration / CMake - **`src/CMakeLists.txt` — simplicity subtree warnings** — `-Wconditional-uninitialized`/`-Wimplicit-fallthrough` (Clang) and `-Wtype-limits` (GCC/mingw) in vendored `dag.c`/`rsort.c`; suppression was gated `if(APPLE)` only, extended to all Clang toolchains plus a GCC-specific suppression. - **`src/qt/CMakeLists.txt`** — `WITH_MULTIPROCESS` block called `import_plugins(bitcoin-gui)`, never renamed to Elements' `elements-gui` target. - **`src/kernel/CMakeLists.txt`** — `libbitcoinkernel` missing several source files (`addresstype.cpp`, `key.cpp`, `script/miniscript.cpp`, `common/{config,settings}.cpp`, `chainparamsbase.cpp`, `mainchainrpc.cpp`) and libevent linkage, needed because `pegins.cpp` (pulled into the kernel lib) calls `IsConfirmedBitcoinBlock` unconditionally. - **Windows cross-compilation** — secp256k1 `__imp_` linker symbols (fixed via `PUBLIC` CMake linkage); `pegins.cpp`/`confidential_validation.cpp` needed to move from `bitcoin_node` to `bitcoin_common` to satisfy the dependency graph; NSIS installer asset staging. ## 6. Toolchain / fuzz harness - **`test/fuzz/simplicity_tx.cpp`** — missing `SeedRandomStateForTest(SeedRand::ZEROS);` as the first line of the `FUZZ_TARGET` body, required by the `CheckGlobals` reproducibility guard whenever a target touches the global RNG state. Also needed the corresponding `#include <test/util/random.h>` --- ## 7. Python functional-test gaps - **`test/functional/p2p_headers_sync_with_minchainwork.py`** and **`p2p_headers_presync.py`** — both call `self.nodes[0].createwallet(...)` unconditionally (an Elements-specific addition needed because Elements' `generatetoaddress`-based mining approach requires a wallet address, unlike upstream's `self.generate()`), but neither had the standard `self.skip_if_no_wallet()` guard that every other wallet-touching test in the suite already has, causing `Method not found (-32601)` failures in no-wallet CI builds. Both fixed by adding the guard as the first line of `run_test()`. Flagged for a broader sweep (`grep -rL skip_if_no_wallet` against files that call wallet methods) since both were adapted from the same original source and the same gap may recur elsewhere. --- ## 8. Static analysis / clang-tidy Batch of ~9 findings from a `-warnings-as-errors` `clang-tidy` run, - `rpc/util.cpp` — two hand-written trivial default constructors → `= default`. - `qt/networkstyle.cpp` — legitimate bounded single-level recursion (`instantiate()`, guarded by an `assert` immediately before the recursive call) → `NOLINT(misc-no-recursion)` rather than a rewrite. - `wallet/coinselection.cpp` — two occurrences of `auto input_set/set = result.GetInputSet();` copy-constructed but only used by reference (`.find()`/`.end()` need to operate on the same instance, so the copy can't simply be inlined away either) → `const auto&`. One occurrence was caught by CI in a second pass after the first fix (§10 recurrence). - `assetsdir.cpp` — range-for copying each string → `const std::string&`. - `primitives/bitcoin/merkleblock.cpp` — three inherently-recursive Merkle-tree traversal functions, straight from unmodified upstream → `NOLINT(misc-no-recursion)` rather than rewriting a correctness-sensitive algorithm. - `validation.cpp` — `emplace_back` in a loop of known size without `reserve()`. - `bitcoin-tx.cpp` — three occurrences of the same unnecessary-copy pattern as coinselection.cpp. - `test/blind_tests.cpp` — `push_back` in a fixed 6-iteration loop without `reserve()`. ## 9. Previous releases - `wallet_migration.py` disabed. - `wallet_backwards_compatibility.py` remains disabled (as in 23.x). ACKs for top commit: delta1: ACK cd384f0; tested locally Tree-SHA512: 7378f83fd041219df375bd9e1acde926045e04de1d66da7cc5581b012153eaec85f8da0ff51817e89204b7e74fb061517a78cb692e42aadcc804ebc2fbaab5af
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Remove trailing whitespace