Skip to content

Commit 533a458

Browse files
Squashed 'libbitcoinkernel-sys/bitcoin/' changes from 62a253b372a6..cdc7c69bf6b1
cdc7c69bf6b1 Change kernel install directory temporarily 1d9c6f53bdbd Add BlockReader functionality to kernel library ac993426a14c Add directory locking and read-only mode to BlockTreeStore 74c2b345ac2b Flush disk writes when not in initial block download 57a96f6cec20 Remove block_tree_db_in_memory parameter after flat-file migration d6408d938769 blockstorage: Remove BlockTreeDB dead code fc24cd8253c2 kernel: Add assumed header store to chainparams a644f2404b2d kernel: Remove block tree db params 39ddc770deeb blockstorage: Replace BlockTreeDB with BlockTreeStore a971f88ac714 fuzz: Use BlockTreeStore in block index fuzz test daacbff55c08 kernel: Add blocktreestorage module 1932c011baf8 kernel: Introduce initial kernel C header API 690a5dac223e kernel: Fix bitcoin-chainstate for windows 345d2ac84162 kernel: Add Purpose section to header documentation 790b2baa7ce2 kernel: Add pure kernel bitcoin-chainstate 78e4ca20aae6 kernel: Add functions to get the block hash from a block 4c0de2443d8a kernel: Add block index utility functions to C header d031c5871e47 kernel: Add function to read block undo data from disk to C header e10616b59b13 kernel: Add functions to read block from disk to C header 71e76017b8c4 kernel: Add function for copying block data to C header a015529dd449 kernel: Add functions for the block validation state to C header e5870b8253f8 kernel: Add validation interface to C header 24d56ecfbae4 kernel: Add interrupt function to C header 98710edc97ae kernel: Add import blocks function to C header 2b9382a5ebc2 kernel: Add chainstate load options for in-memory dbs in C header 15dff3f0b5d5 kernel: Add options for reindexing in C header f2faf1790484 kernel: Add block validation to C header 4cd4577fc82b kernel: Add chainstate loading when instantiating a ChainstateManager 7a40d4ddb23a kernel: Add chainstate manager option for setting worker threads 7bac421d186a kernel: Add chainstate manager object to C header fc83bef50833 kernel: Add notifications context option to C header 76a0c97e0df6 kernel: Add chain params context option to C header a3cc9ec2dc7d kernel: Add kernel library context object d7230ea9b9ee kernel: Add logging to kernel library C header 84680fe7ca33 kernel: Introduce initial kernel C header API REVERT: 62a253b372a6 add kernel process new block headers REVERT: 1ffc1c9d94b1 kernel: Fix bitcoin-chainstate for windows REVERT: 686c4108cc1d kernel: Add Purpose section to header documentation REVERT: 8d47a4073120 kernel: Add pure kernel bitcoin-chainstate REVERT: ba84650882f1 kernel: Add functions to get the block hash from a block REVERT: a4217273422b kernel: Add block index utility functions to C header REVERT: aedbe73cf096 kernel: Add function to read block undo data from disk to C header REVERT: 109dda0845d8 kernel: Add functions to read block from disk to C header REVERT: 3e24c34ad481 kernel: Add function for copying block data to C header REVERT: 9ab3d14c1d15 kernel: Add functions for the block validation state to C header REVERT: 4408228f8556 kernel: Add validation interface to C header REVERT: 0c3054ef4b6e kernel: Add interrupt function to C header REVERT: 45895c4ac778 kernel: Add import blocks function to C header REVERT: 994c869ba238 kernel: Add chainstate load options for in-memory dbs in C header REVERT: b4ad47e31268 kernel: Add options for reindexing in C header REVERT: 591b28d61548 kernel: Add block validation to C header REVERT: a1fe6b4264bf kernel: Add chainstate loading when instantiating a ChainstateManager REVERT: 0cf99f827e48 kernel: Add chainstate manager option for setting worker threads REVERT: c18b35135c75 kernel: Add chainstate manager object to C header REVERT: 1de2db7eacde kernel: Add notifications context option to C header REVERT: b1e6a28d17c6 kernel: Add chain params context option to C header REVERT: 369cfd3f6c4f kernel: Add kernel library context object REVERT: f9e13dbb1ade kernel: Add logging to kernel library C header REVERT: ce1288828783 kernel: Introduce initial kernel C header API REVERT: 7566b40bd230 Merge bitcoin/bitcoin#32961: fix spelling in tor.md docs REVERT: 84ef5524d5ab fix spelling in tor.md docs REVERT: 6a13a6106e3c Merge bitcoin/bitcoin#32937: Enable `-Werror=dev` in CI & Guix REVERT: 23e15d40b96a Merge bitcoin/bitcoin#32631: refactor: Convert GenTxid to `std::variant` REVERT: 8ffbd7b77860 Merge bitcoin/bitcoin#32940: cmake: Use newer signature of `qt6_add_lrelease` when available REVERT: 80ce5137663d Merge bitcoin/bitcoin#32933: log: Properly log warnings with warn loglevel in addrdb REVERT: 8f766f39df3e ci: enable -Werror=dev REVERT: 7b420ca8341a guix: configure with -Werror=dev REVERT: 44097ddb1913 cmake: enable -Werror=dev in dev-mode preset REVERT: 12fb00fd4228 Merge bitcoin/bitcoin#32927: fuzz: Add missing calls to `SetMockTime` for determinism REVERT: 3c1418666bfa Merge bitcoin/bitcoin#32930: Resolve guix non-determinism with emplace_back instead of push_back REVERT: bad998b7c040 Merge bitcoin/bitcoin#32921: test: less ambiguous error if bitcoind is missing REVERT: 7f28e8032987 Merge bitcoin/bitcoin#32758: wallet: remove dead code in legacy wallet migration REVERT: 5ef0d4897be4 Merge bitcoin/bitcoin#30605: Cluster linearization: separate tests from tests-of-tests REVERT: f43571010e38 Resolve guix non-determinism with emplace_back instead of push_back REVERT: 94931656b52f cmake: Use newer signature of `qt6_add_lrelease` when available REVERT: b80ead8a7182 Merge bitcoin/bitcoin#32890: bench: Avoid tmp files in pwd REVERT: c4f90900b55f Merge bitcoin/bitcoin#32932: test: Add missing convert_to_json_for_cli REVERT: fa894b0f3e13 log: Properly log warnings with warn loglevel in addrdb REVERT: 83ae7802fe14 Merge bitcoin/bitcoin#32881: test: Turn rpcauth.py test into functional test REVERT: fa0528479d5e test: Add missing convert_to_json_for_cli REVERT: a40e9536588c Merge bitcoin/bitcoin#30479: validation: Add eligible ancestors of reconsidered block to setBlockIndexCandidates REVERT: 1ca62edd85b1 Merge bitcoin/bitcoin#32580: wallet, test: best block locator matches scan state follow-ups REVERT: 2cad7226c2d0 Merge bitcoin/bitcoin#32799: mempool: use `FeeFrac` for ancestor/descendant score comparators REVERT: 2d59977601ea Merge bitcoin/bitcoin#32604: log: Mitigate disk filling attacks by rate limiting LogPrintf, LogInfo, LogWarning, LogError REVERT: 4c772cbd83e5 doc: add release notes for new rate limiting logging behavior REVERT: d541409a64c6 log: Add rate limiting to LogPrintf, LogInfo, LogWarning, LogError, LogPrintLevel REVERT: a6a35cc0c23d log: use std::source_location in place of __func__, __FILE__, __LINE__ REVERT: afb9e39ec555 log: introduce LogRateLimiter, LogLimitStats, Status REVERT: df7972a6cfd9 test: Mark ~DebugLogHelper as noexcept(false) REVERT: fa8862723c14 fuzz: CheckGlobals in init REVERT: fa26bfde988b test: Avoid resetting mocktime in testing setup REVERT: fa6b45fa8ec8 Add SetMockTime for time_point types REVERT: a60f863d3e27 scripted-diff: Replace GenTxidVariant with GenTxid REVERT: c8ba19959863 Remove old GenTxid class REVERT: 072a198ea4bc Convert remaining instances of GenTxid to GenTxidVariant REVERT: 1b528391c794 Convert `txrequest` to GenTxidVariant REVERT: bde4579b0780 Convert `txdownloadman_impl` to GenTxidVariant REVERT: c876a892ec0b Replace GenTxid with Txid/Wtxid overloads in `txmempool` REVERT: de858ce2bea8 move-only: make GetInfo a private CTxMemPool member REVERT: eee473d9f301 Convert `CompareInvMempoolOrder` to GenTxidVariant REVERT: b7e9dc8e468b Merge bitcoin/bitcoin#32884: rest: replace `rf_names[0].rf` by `RESTResponseFormat::UNDEF` REVERT: fa4d68cf97b6 Turn rpcauth.py test into functional test REVERT: 83bb41455715 test: less ambiguous error if bitcoind is missing REVERT: 150b5c99ca11 wallet: replace `reload_wallet` with inline functionality REVERT: 927055e42afb Merge bitcoin/bitcoin#32893: doc: fix `BlockConnected` incorrect comment REVERT: a8bff38236ac Merge bitcoin/bitcoin#32862: rpc: use CScheduler for relocking wallet and remove RPCTimer REVERT: 21b42f3c5569 Merge bitcoin/bitcoin#32660: rpc: Use type-safe exception to pass RPC help REVERT: 528f79f010d1 Merge bitcoin/bitcoin#32835: test: fix feature_init.py intermittencies REVERT: fc543f94a9c3 Merge bitcoin/bitcoin#32385: test: refactor out same-txid-diff-wtxid tx to reuse in other tests REVERT: 09add84fc5ad Merge bitcoin/bitcoin#32618: wallet: Remove ISMINE_WATCHONLY and watchonly from RPCs REVERT: 87ab69155d94 Merge bitcoin/bitcoin#31553: cluster mempool: add TxGraph reorg functionality REVERT: 4e69aa5701a2 doc: fix `BlockConnected` incorrect comment REVERT: d33c111448ac Merge bitcoin/bitcoin#32829: threading: use correct mutex name in reverse_lock fatal error messages REVERT: de4eef52d123 threading: use correct mutex name in reverse_lock fatal error messages REVERT: fa2fbaa4a29f bench: Avoid tmp files in pwd REVERT: 6d19815cd440 rest: replace `rf_names[0].rf` by `RESTResponseFormat::UNDEF` for code clarity REVERT: 4207d9bf823b test: feature_init, ensure indexes are synced prior to perturbing files REVERT: e3f416dbf763 Merge bitcoin/bitcoin#32463: test: fix an incorrect `feature_fee_estimation.py` subtest REVERT: ea4285775e61 Merge bitcoin/bitcoin#29307: util: explicitly close all AutoFiles that have been written REVERT: 51ccc71b1bf9 Merge bitcoin/bitcoin#32858: doc: Add workaround for vcpkg issue with paths with embedded spaces REVERT: fcfd3db563e8 remove RPCTimerInterface and RPCRunLater REVERT: 8a1765795fd3 use WalletContext scheduler for walletpassphrase callback REVERT: 927e9b220f17 Merge bitcoin/bitcoin#32716: depends: Override host compilers for FreeBSD and OpenBSD REVERT: c7fe8abb5f38 Merge bitcoin/bitcoin#31233: cmake: Improve Python robustness and test usability REVERT: 625194944333 Merge bitcoin/bitcoin#32290: test: allow all functional tests to be run or skipped with --usecli REVERT: 0f86da382d3f wallet: remove dead code in legacy wallet migration REVERT: 49d5f1f2c6d2 Merge bitcoin/bitcoin#32850: test: check P2SH sigop count for coinbase tx REVERT: abd07cf7332e test: feature_init, only init what's needed per perturbation/deletion round REVERT: 192743235493 Merge bitcoin/bitcoin#32859: functional test: correctly detect nonstd TRUC tx vsize in feature_taproot REVERT: 68ca13e1f96a Merge bitcoin/bitcoin#32823: test: Fix wait_for_getheaders() call in test_outbound_eviction_blocks_relay_only() REVERT: 35cae56a9292 Merge bitcoin/bitcoin#31423: wallet: migration, avoid creating spendable wallet from a watch-only legacy wallet REVERT: 1632fc104be8 txgraph: Track multiple potential would-be clusters in Trim (improvement) REVERT: 4608df37e02a txgraph: add Trim benchmark (benchmark) REVERT: 9c436ff01cff txgraph: add fuzz test scenario that avoids cycles inside Trim() (tests) REVERT: 938e86f8fecd txgraph: add unit test for TxGraph::Trim (tests) REVERT: a04e205ab03e txgraph: Add ability to trim oversized clusters (feature) REVERT: eabcd0eb6fca txgraph: remove unnecessary m_group_oversized (simplification) REVERT: 19b14e61eae7 txgraph: Permit transactions that exceed cluster size limit (feature) REVERT: c4287b9b71c6 txgraph: Add ability to configure maximum cluster size/weight (feature) REVERT: f0524cda3995 functional test: correctly detect nonstd TRUC tx vsize in feature_taproot REVERT: 0a1af4418ed2 doc: Add workaround for vcpkg issue with paths with embedded spaces REVERT: a92e8b10a5fb Merge bitcoin/bitcoin#32564: miniscript, refactor: Make `operator""_mst` `consteval` (re-take) REVERT: bf75c9964fb2 Merge bitcoin/bitcoin#32828: build, docs: Fix Boost-related issues on NetBSD REVERT: 7fa9b58bd907 Merge bitcoin/bitcoin#32841: feature_taproot: sample tx version border values more REVERT: 1b5c545e82fe wallet, test: best block locator matches scan state follow-ups REVERT: fa3359289883 Merge bitcoin/bitcoin#32723: Refactor: Redefine CTransaction equality to include witness data REVERT: ce000c8ee02a Merge bitcoin/bitcoin#32219: test: enabling wallet migration functional test on windows REVERT: f33154c464b3 Merge bitcoin/bitcoin#32432: wallet, rpc: Use `OUTPUT_TYPES` to describe the output types instead of hardcoding them REVERT: fa9b1e354444 Merge bitcoin/bitcoin#32846: doc: clarify that the "-j N" goes after the "--build build" part REVERT: b1a8ac07e91d doc: Release note for removed watchonly parameters and results REVERT: 15710869e19e wallet: Remove ISMINE_WATCH_ONLY REVERT: 4439bf4b41a6 wallet, spend: Remove fWatchOnly from CCoinControl REVERT: 1337c72198a7 wallet, rpc: Remove watchonly from RPCs REVERT: e81d95d43574 wallet: Remove watchonly balances REVERT: d20dc9c6aae0 wallet: Wallets without private keys cannot grind R REVERT: 9991f49c38c0 test: Watchonly wallets should estimate larger size REVERT: d6aaffcb11ad test: check P2SH sigop count for coinbase tx REVERT: b1821d8dd39f Merge bitcoin/bitcoin#27286: wallet: Keep track of the wallet's own transaction outputs in memory REVERT: 0e9f409db3b7 doc: clarify that the "-j N" goes after the "--build build" part REVERT: 67dc7523f3e1 cmake, test: Disable tests instead of ignoring them REVERT: bb9157db5d39 cmake, refactor: Switch to `Python3::Interpreter` imported target REVERT: ed7a841f82f9 Merge bitcoin/bitcoin#32816: contrib: correct variable name in p2p_monitor.py REVERT: 2ae5154dd860 Merge bitcoin/bitcoin#32842: doc: add `/spenttxouts` to REST-interface.md REVERT: 243553d59071 refactor: replace get_iter_from_wtxid with GetIter(const Wtxid&) REVERT: fcf92fd640ea refactor: make CTxMemPool::GetIter strongly typed REVERT: 23a00fcf571f Merge bitcoin/bitcoin#32783: doc: Add fetching single PRs from upstream to productivity.md REVERT: dd99cedc0bfe doc: add `/spenttxouts` to REST-interface.md REVERT: 4be81e9746e9 feature_taproot: sample tx version border values more REVERT: 6e5b67a370bb Merge bitcoin/bitcoin#32697: test: Turn util/test_runner into functional test REVERT: fb2c16cf7bfb Merge bitcoin/bitcoin#32826: p2p: add more bad ports REVERT: f5f3e1f26328 Merge bitcoin/bitcoin#32646: p2p: Add witness mutation check inside FillBlock REVERT: a763497b1d66 Merge bitcoin/bitcoin#32834: test: Use msg_generic in p2p_ping.py REVERT: fa3f100010f1 test: Use msg_generic in p2p_ping.py REVERT: 33480573cbd8 Merge bitcoin/bitcoin#32833: test: Add `msgtype` to `msg_generic` slots REVERT: 9501738e1cbd Merge bitcoin/bitcoin#32825: rest: rename `strURIPart` to `uri_part` REVERT: 5a5ddbd78922 build: Add workaround for NetBSD bug in `Boost::headers` target REVERT: 6967e8e8abbc add more bad p2p ports REVERT: 7dc43ea503a2 test: Add msgtype to msg_generic slots REVERT: 4eb3cee919ed doc: Update NetBSD Build Guide REVERT: 856f4235b1ae scripted-diff: rest: rename `strURIPart` -> `uri_part` REVERT: b3bb4031ab32 Merge bitcoin/bitcoin#32540: rest: fetch spent transaction outputs by blockhash REVERT: 3086c21df4a2 Merge bitcoin/bitcoin#32243: test: added fuzz coverage for consensus/merkle.cpp REVERT: 319ff58bbd58 Merge bitcoin/bitcoin#32638: blocks: force hash validations on disk read REVERT: ec004cdb86e6 test: Use rehash() in outbound eviction block-relay REVERT: 26598ed21ea7 test: Clarify roles in outbound eviction comments REVERT: 689318ccd9c2 Merge bitcoin/bitcoin#32667: build: Find Boost in config mode REVERT: 4a3475a43e80 Merge bitcoin/bitcoin#32819: Add release note for #32530 REVERT: 558f0880a8f3 Add release note for #32530 REVERT: c43cc48aaaaa Merge bitcoin/bitcoin#32530: node: cap `-maxmempool` and `-dbcache` values for 32-bit REVERT: 4145a9463a58 Merge bitcoin/bitcoin#32731: depends: Build `qt` package for FreeBSD hosts REVERT: 14653b869b91 build: Find Boost in config mode REVERT: 67ea4b9994e6 Merge bitcoin/bitcoin#32814: cmake: Explicitly specify `Boost_ROOT` for Homebrew's package REVERT: 5170ec1ae35d Merge bitcoin/bitcoin#32665: depends: Bump boost to 1.88.0 and use new CMake buildsystem REVERT: 8fafb81320dd Merge bitcoin/bitcoin#32805: cmake: Use `HINTS` instead of `PATHS` in `find_*` commands REVERT: 6bb38bf37fd8 Update p2p_monitor.py REVERT: 9b75cfda4d62 test: retain the intended behavior of `feature_fee_estimation.py` nodes REVERT: 5c1236f04a24 test: fix incorrect subtest in `feature_fee_estimation.py` REVERT: e5f9218b6afb Merge bitcoin/bitcoin#32742: test: fix catchup loop in outbound eviction functional test REVERT: 11d28f21bb8f Implement GenTxid as a variant REVERT: 215e5999e207 wallet: Remove unused CachedTxGet{Available,Immature}Credit REVERT: 49675de035e7 wallet: Have GetDebit use the wallet's TXO set REVERT: 17d453cb3a6f wallet: Recompute wallet TXOs after descriptor migration REVERT: 764016eb2259 wallet: Retrieve TXO directly in FetchSelectedInputs REVERT: c1801b78f1c1 wallet: Use wallet's TXO set in AvailableCoins REVERT: dde7cbe105ba wallet: Change balance calculation to use m_txos REVERT: 96e7a89c5e0b wallet: Recalculate the wallet's txos after any imports REVERT: ae888c38d080 wallet: Exit IsTrustedTx early if wtx is already in trusted_parents REVERT: ae0876ec4273 wallet: Keep track of transaction outputs owned by the wallet REVERT: 0f269bc48c39 walletdb: Load Txs last REVERT: 5cc32ee2a7ad test: Test for balance update due to untracked output becoming spendable REVERT: 8222341d4f9c wallet: MarkDirty after AddWalletDescriptor REVERT: e02f2d331ce6 bench: Have AvailableCoins benchmark include a lot of unrelated utxos REVERT: f27898c8bfe3 Merge bitcoin/bitcoin#32721: wallet, rpc: Remove deprecated balances from getwalletinfo and getunconfirmedbalance REVERT: 8578fabb95fa Merge bitcoin/bitcoin#32597: wallet: Always set descriptor cache upgraded flag for new wallets REVERT: 941b8f54c0d3 ci: run get_previous_releases as part of test cross win job REVERT: 5e2182140bcd test: increment mocked time for migrating wallet backups REVERT: 5174565802f4 ci: disable feature_unsupported_utxo_db functional test REVERT: 3dc90d69a64f test: remove mempool.dat before copying REVERT: 67a6b20d5030 test: add windows support to get previous releases script REVERT: 01f908195589 Merge bitcoin/bitcoin#32768: wallet: Remove `CWalletTx::fTimeReceivedIsTxTime` REVERT: c1d8a542b46c Merge bitcoin/bitcoin#32727: doc: add release notes for #32425 REVERT: 1a1b478ca31b scripted-diff: rename tarball to archive REVERT: 4f06dc848460 test: remove building from source from get prev releases script REVERT: 45b1d3975766 doc: Add fetching single PRs from upstream REVERT: 8800b5acc1ef cmake: Explicitly specify `Boost_ROOT` for Homebrew's package REVERT: b9a2e8ee965d doc: add release notes for bitcoin/bitcoin#32425 REVERT: 6c2538d5bfea depends: Bump boost to 1.88.0 and use new CMake buildsystem REVERT: 7d5a6d17398a Merge bitcoin/bitcoin#32798: build: add root dir to CMAKE_PREFIX_PATH in toolchain REVERT: a34fb9ad6c6c miniscript: Make `operator""_mst` `consteval` REVERT: 14052162b19a Revert "miniscript: make operator_mst consteval" REVERT: ead44687483e cmake: Use `HINTS` instead of `PATHS` in `find_*` commands REVERT: ad654a4807cd Merge bitcoin/bitcoin#32767: ci: Allow running CI in worktrees REVERT: 67e6746dc87a Merge bitcoin/bitcoin#32780: lsan: add more Qt suppressions REVERT: e27a94596f2a build: add root dir to CMAKE_PREFIX_PATH REVERT: 173394d9511e depends: Build `qt` package for FreeBSD hosts REVERT: 922adf66ac74 mempool: use `FeeFrac` for calculating regular score REVERT: 3322b3a05954 mempool: use `FeeFrac` for calculating ancestor score REVERT: ac9c113bd2a2 mempool: use `FeeFrac` for calculating descendant score REVERT: e95bfc1d537e Merge bitcoin/bitcoin#32797: doc: archive 28.2 release notes REVERT: 666016e56b28 ci: use --usecli in one of the CI jobs REVERT: 7ea248a02099 test: Disable several (sub)tests with cli REVERT: f420b6356b6f test: skip subtests that check for wrong types with cli REVERT: 6530d0015b95 test: add function to convert to json for height_or_hash params REVERT: 54d28722baea test: Don't send empty named args with cli REVERT: cca422060e96 test: convert tuple to json for cli REVERT: af34e980866e test: make rpc_psbt.py usable with --usecli REVERT: 8f8ce9e1740d test: rename .rpc to ._rpc and remove unnecessary uses REVERT: 5b0888598632 test: enable functional tests with large rpc args for cli REVERT: 7d5352ac7373 test: use -stdin for large rpc commands REVERT: 6c364e0c10de test: Enable various tests for usage with cli REVERT: 907842363c64 doc: archive 28.2 release notes REVERT: c5849663baa9 Merge bitcoin/bitcoin#32771: contrib: tracing: Fix read of `pmsg_type` in p2p_monitor.py REVERT: 8a36a471e652 Merge bitcoin/bitcoin#32781: refactor: modernize deprecated ipc headers REVERT: ed060e01e756 Merge bitcoin/bitcoin#32725: test: round difficulty and networkhashps REVERT: daf393b3f15d Merge bitcoin/bitcoin#32642: test: update BIP340 test vectors and implementation (variable-length messages) REVERT: 482d2553764e Merge bitcoin/bitcoin#32736: wallet: Correct dir iteration error handling REVERT: 74b7e9c7dbf7 refactor: modernize deprecated ipc headers REVERT: 154b98a7aaae Merge bitcoin/bitcoin#32772: fuzz: wallet: remove `FundTx` from `FuzzedWallet` REVERT: fa183045a1ea Merge bitcoin/bitcoin#32765: test: Fix list index out of range error in feature_bip68_sequence.py REVERT: 5be31b20e54e lsan: add more Qt suppressions REVERT: e18322eff274 Merge bitcoin/bitcoin#32774: doc: Explain how to fetch commits directly REVERT: b86141925416 Merge bitcoin/bitcoin#32777: doc: fix Transifex 404s REVERT: 79afe6b7c092 Merge bitcoin/bitcoin#32776: doc: taproot became always active in v24.0 (doc/bips.md) REVERT: 53a996f12266 doc: fix transifex 404s REVERT: 8ee8a951c205 doc: taproot became always active in v24.0 REVERT: fa2163159511 test: Use self.log REVERT: fa346f7797ae test: Move error string into exception REVERT: fa1986181f24 test: Remove useless catch-throw REVERT: fa94fd53c996 doc: Explain how to fetch commits directly REVERT: 9a7eece5a4a1 Merge bitcoin/bitcoin#31981: Add checkBlock() to Mining interface REVERT: 8cc9845b8ddf wallet, rpc: Use `OUTPUT_TYPES` to describe the output types instead of hardcoding them REVERT: 3473986fe10e contrib: tracing: Correctly read msg type in p2p_monitor.py REVERT: cd1ae1b4dfdb fuzz: wallet: remove FundTx from FuzzedWallet REVERT: fa68dcb207c3 ci: Add missing errexit to lint CI install REVERT: fa535a6de7a0 ci: Allow running CI in worktrees REVERT: faf6a0459749 ci: Clean UID/GID mismatch REVERT: 9eb2c82e7c91 walletdb: Remove unused upgraded_txs REVERT: c66803370988 wallet: Remove unused fTimeReceivedIsTxTime REVERT: 5e6dbfd14ea9 Merge bitcoin/bitcoin#32465: thread-safety: fix annotations with REVERSE_LOCK REVERT: e285e691b7a3 test: Fix list index out of range error in feature_bip68_sequence.py REVERT: 1be688f57515 Merge bitcoin/bitcoin#32682: wallet: have external signer use PSBT error code EXTERNAL_SIGNER_NOT_FOUND REVERT: a201a99f8cf5 thread-safety: fix annotations with REVERSE_LOCK REVERT: 26747d9f3e3f Merge bitcoin/bitcoin#32760: depends: capnp 1.2.0 REVERT: c10e382d2a3b flatfile: check whether the file has been closed successfully REVERT: 4bb5dd78ea4b util: check that a file has been closed before ~AutoFile() is called REVERT: 8bb34f07df9a Explicitly close all AutoFiles that have been written REVERT: a69c4098b273 rpc: take ownership of the file by WriteUTXOSnapshot() REVERT: c7eaac326ac2 depends: capnp 1.2.0 REVERT: afaaba69eddd test: refactor out same-txid-diff-wtxid tx to reuse in other tests REVERT: 084eee029199 Merge bitcoin/bitcoin#32743: refactor: use `std::vector<std::byte>` for `BlockManager::ReadRawBlock()` REVERT: c48846ec4169 doc: add release notes for #32540 REVERT: d7fca5c171f4 clusterlin: add big comment explaning the relation between tests REVERT: b64e61d2de65 clusterlin: abstract try-permutations into ExhaustiveLinearize function REVERT: 1fa55a64ed18 clusterlin tests: verify that chunks are minimal REVERT: da23ecef29b7 clusterlin tests: support non-empty ReadTopologicalSubset() REVERT: 94f3e17c33e6 clusterlin tests: compare with fuzz-provided linearizations REVERT: 5f92ebee0d24 clusterlin tests: compare with fuzz-provided topological sets REVERT: 6e37824ac390 clusterlin tests: optimize clusterlin_simple_linearize REVERT: 98c1c88b6f8d clusterlin tests: separate testing of SimpleLinearize and Linearize REVERT: 10e90f7aef9c clusterlin tests: make SimpleCandidateFinder always find connected REVERT: a38c38951e10 clusterlin tests: separate testing of Search- and SimpleCandidateFinder REVERT: 77a432ee704b clusterlin tests: count SimpleCandidateFinder iterations better REVERT: a18e57232867 test: more template verification tests REVERT: 10c908808fb8 test: move gbt proposal mode tests to new file REVERT: 94959b8deedc Add checkBlock to Mining interface REVERT: 6077157531c1 ipc: drop BlockValidationState special handling REVERT: 74690f4ed82b validation: refactor TestBlockValidity REVERT: 2def85847318 Merge bitcoin/bitcoin#32481: wallet, refactor: Remove Legacy wallet unused warnings and errors REVERT: 287cd04a32df Merge bitcoin/bitcoin#32594: wallet, rpc: Return normalized descriptor in parent_descs REVERT: fd74d609bed9 Merge bitcoin/bitcoin#32620: wallet: Fix wallet interface detection of encrypted wallets REVERT: 6ecb9fc65f9a chore: use `std::vector<std::byte>` for `BlockManager::ReadRawBlock()` REVERT: 65b26507b84a Merge bitcoin/bitcoin#32746: test: remove unnecessary m_best_header setting hack in feature_assumeutxo.py REVERT: 3e8168442692 Merge bitcoin/bitcoin#32739: tsan: remove note about dropping Qt wildcards REVERT: b8eb17792e0c Merge bitcoin/bitcoin#32175: fuzz: doc: add info about `afl-system-config` for macOS REVERT: 206bc05e62c6 test: remove unnecessary m_best_header setting hack in feature_assumeutxo.py REVERT: 272cd09b796a log: Use warning level while scanning wallet dir REVERT: 17776443675d qa, wallet: Verify warning when failing to scan REVERT: 893e51ffeb05 wallet: Correct dir iteration error handling REVERT: 52e6e93c3f60 Merge bitcoin/bitcoin#32693: depends: fix cmake compatibility error for freetype REVERT: fa2f1c55b7da move-only util data to test/functional/data/util REVERT: faa18bf287fc test: Turn util/test_runner into functional test REVERT: fa955154c773 test: Add missing skip_if_no_bitcoin_tx REVERT: 9341b5333ad5 blockstorage: make block read hash checks explicit REVERT: 2371b9f4ee0b test/bench: verify hash in `ComputeFilter` reads REVERT: 5d235d50d6dd net: assert block hash in `ProcessGetBlockData` and `ProcessMessage` REVERT: 5db0a4a2db20 tsan: remove note about dropping Qt wildcards REVERT: d91c718a686a Merge bitcoin/bitcoin#32717: doc: Update Qt 6 packages on FreeBSD REVERT: fac9db6eb0c6 test: Add missing tx util to Binaries REVERT: fa91835ec6ad test: Use lowercase env var as attribute name REVERT: fac49094cdb1 test: Remove duplicate ConfigParser REVERT: 9dfc61d95f00 test: detect no external signer connected REVERT: dd8447f70faf test: fix catchup loop in outbound eviction functional test REVERT: 19765dca197a Merge bitcoin/bitcoin#32694: index: move disk read lookups to base class REVERT: 8cc3ac6c2328 validation: Don't use IsValid() to filter for invalid blocks REVERT: 86d98b94e546 test: verify that ancestors of a reconsidered block can become the chain tip REVERT: 3c39a55e64be validation: Add ancestors of reconsiderblock to setBlockIndexCandidates REVERT: 1df96f59316c doc: Update Qt 6 packages on FreeBSD REVERT: d7c37906e7b1 build: patch cmake min version on freetype REVERT: fa946520d229 refactor: Use structured binding for-loop REVERT: eeeec1579ec5 rpc: Use type-safe exception to pass RPC help REVERT: 5757de4ddd37 Merge bitcoin/bitcoin#32673: clang-tidy: Apply modernize-deprecated-headers REVERT: 1473f69924bc Merge bitcoin/bitcoin#32421: test: refactor: overhaul (w)txid determination for `CTransaction` objects REVERT: 7c0cfce20df9 Merge bitcoin/bitcoin#31405: validation: stricter internal handling of invalid blocks REVERT: 851f540d0e03 Merge bitcoin/bitcoin#32703: test: Explain how to reproduce zmq:: upstream race REVERT: 5af5e9791dc9 Merge bitcoin/bitcoin#32690: depends: fix multiprocess build on OpenBSD (apply capnp patch, correct SHA256SUM command) REVERT: fed41b75fbfa Merge bitcoin/bitcoin#32431: deps: Bump lief to 0.16.6 REVERT: 578ea3eedb28 test: round difficulty and networkhashps REVERT: c8abd972818f Merge bitcoin/bitcoin#32719: doc, windows: CompanyName "Bitcoin" => "Bitcoin Core project" REVERT: 029ba1a21d57 index: remove CBlockIndex access from CustomAppend() REVERT: 91b7ab6c6926 refactor: index, simplify CopyHeightIndexToHashIndex to process single block REVERT: 4f56c9145a60 refactor: contrib: Move FORTIFY check to BASE_ELF REVERT: f6d25e8a2dd3 contrib: Re-enable FORTIFY check for RISCV REVERT: 765922d8022d deps: bump lief to 0.16.6 REVERT: 4ef625301767 test: avoid unneeded (w)txid hex -> integer conversions REVERT: 472f3770aec8 scripted-diff: test: rename CTransaction `.getwtxid()` -> `wtxid_hex` for consistency REVERT: 81af4334e8f9 test: rename CTransaction `.sha256` -> `.txid_int` for consistency REVERT: ce8392423712 test: rename CTransaction `.rehash()`/`.hash` -> `.txid_hex` for consistency REVERT: 6efbd1e1dcdf refactor: CTransaction equality should consider witness data REVERT: cbf9b2dab1d8 mempool: codify existing assumption about duplicate txids during removal REVERT: c3fe85e2d6dd wallet, rpc, test: Remove deprecated getunconfirmedbalance REVERT: 0ec255139be3 wallet, rpc: Remove deprecated balances from getwalletinfo REVERT: e9331cd6ab2c wallet: IsEquivalentTo should strip witness data in addition to scriptsigs REVERT: ce90f0c99fde rpc, wallet, refactor: Remove non-descriptor errors REVERT: 573bcd75d7b6 wallet, refactor: Remove unused SetupGeneration REVERT: 5431f2dc2159 wallet, refactor: Remove Legacy warnings and errors REVERT: 6f1392cc42cd indexes, refactor: Remove remaining CBlockIndex* uses in index Rewind methods REVERT: 0a248708dc9d indexes, refactor: Stop requiring CBlockIndex type to call IsBIP30Unspendable REVERT: 28299ce77636 p2p: remove vestigial READ_STATUS_CHECKBLOCK_FAILED REVERT: bac9ee483066 p2p: Add witness mutation check inside FillBlock REVERT: 4f10a57671c1 depends: Override host compilers for FreeBSD and OpenBSD REVERT: 239fc4d62e73 doc, windows: CompanyName "Bitcoin" => "Bitcoin Core project" REVERT: e9cdaefb0a80 test: introduce and use CTransaction `.wtxid_int` property REVERT: 9b3dce24a333 test: remove bare CTransaction `.rehash()`/`.calc_sha256()` calls REVERT: a2724e3ea392 test: remove txid caching in CTransaction class REVERT: fa0b766f43df test: Remove intermittent and presumed fixed tsan race suppressions REVERT: fa4b659dcd03 test: Explain how to reproduce zmq:: upstream race REVERT: d4e212e8a69e rest: fetch spent transaction outputs by blockhash REVERT: 331a25cb1663 test: indexes, avoid creating threads when sync runs synchronously REVERT: 95969bc58ae0 test: added fuzz coverage to consensus/merkle.cpp REVERT: f6b782f3aad4 doc: Improve m_best_header documentation REVERT: ee673b9aa015 validation: remove m_failed_blocks REVERT: ed764ea2b4ed validation: Add more checks to CheckBlockIndex() REVERT: 9a70883002e1 validation: in invalidateblock, calculate m_best_header right away REVERT: 8e39f2d20d09 validation: in invalidateblock, mark children as invalid right away REVERT: 4c29326183ba validation: cache all headers with enough PoW in invalidateblock REVERT: 15fa5b5a908d validation: call InvalidBlockFound also from AcceptBlock REVERT: 8713e8060d50 depends: fix SHA256SUM command on OpenBSD (use GNU mode output) REVERT: 2d938720bd67 depends: add patch to fix capnp build on OpenBSD REVERT: 0a4ee93529d6 wallet: use PSBTError::EXTERNAL_SIGNER_NOT_FOUND REVERT: 8ba2f9b7c8a6 refactor: use util::Result for GetExternalSigner() REVERT: 130a92298077 wallet, interfaces: Use BERKELEY_RO in isEncrypted REVERT: fa9ca13f35be refactor: Sort includes of touched source files REVERT: facb152697b8 scripted-diff: Bump copyright headers after include changes REVERT: fae71d30f722 clang-tidy: Apply modernize-deprecated-headers REVERT: 0def84d407fa test: Verify parent_desc in RPCs REVERT: b184f5c87c41 test: update BIP340 test vectors and implementation (variable-length messages) REVERT: b78990734621 wallet: migration, avoid creating spendable wallet from a watch-only legacy wallet REVERT: e86d71b749c0 wallet: refactor, dedup wallet re-loading code REVERT: 1de423e0a08b wallet: introduce method to return all db created files REVERT: d04f6a97ba9a refactor: remove sqlite dir path back-and-forth conversion REVERT: 2554cee988fb test: Enable default wallet for wallet_descriptor.py REVERT: 3fc9d9f241a4 wallet, rpc: Push the normalized parent descriptor REVERT: 47237cd19380 wallet, rpc: Output wallet flags in getwalletinfo REVERT: bc2a26b29623 wallet: Add GetWalletFlags REVERT: 69f588a99a7a wallet: Set upgraded descriptor cache flag for newly created wallets REVERT: 9f8e7b0b3b78 node: cap -dbcache to 1GiB on 32-bit architectures REVERT: 2c43b6adebbf init: cap -maxmempool to 500 MB on 32-bit systems REVERT: aeea5f0ec112 thread-safety: add missing lock annotation REVERT: 832c57a53410 thread-safety: modernize thread safety macros REVERT: 61ea5f348da7 fuzz: doc: add info about `afl-system-config` for macOS git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: cdc7c69bf6b1ec52eb1fddd68f81aa93af60777c
1 parent 8d6ebb9 commit 533a458

File tree

503 files changed

+6546
-6581
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

503 files changed

+6546
-6581
lines changed

.github/ci-test-each-commit-exec.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ def main():
2727
"cmake",
2828
"-B",
2929
"build",
30-
"-Werror=dev",
3130
"-DCMAKE_C_COMPILER=clang",
3231
"-DCMAKE_CXX_COMPILER=clang++",
3332
"-DWERROR=ON",

.github/workflows/ci.yml

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,6 @@ jobs:
176176
include:
177177
- job-type: standard
178178
generate-options: '-DBUILD_GUI=ON -DWITH_ZMQ=ON -DBUILD_BENCH=ON -DBUILD_KERNEL_LIB=ON -DBUILD_UTIL_CHAINSTATE=ON -DBUILD_KERNEL_TEST=OFF -DWERROR=ON'
179-
job-name: 'Windows native, VS 2022'
180179
- job-type: fuzz
181180
generate-options: '-DVCPKG_MANIFEST_NO_DEFAULT_FEATURES=ON -DVCPKG_MANIFEST_FEATURES="wallet" -DBUILD_GUI=OFF -DBUILD_FOR_FUZZING=ON -DWERROR=ON'
182181
job-name: 'Windows native, fuzz, VS 2022'
@@ -223,7 +222,7 @@ jobs:
223222

224223
- name: Generate build system
225224
run: |
226-
cmake -B build -Werror=dev --preset vs2022 -DCMAKE_TOOLCHAIN_FILE="${VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake" ${{ matrix.generate-options }}
225+
cmake -B build --preset vs2022 -DCMAKE_TOOLCHAIN_FILE="${VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake" ${{ matrix.generate-options }}
227226
228227
- name: Save vcpkg binary cache
229228
uses: actions/cache/save@v4
@@ -260,7 +259,6 @@ jobs:
260259
env:
261260
BITCOIND: '${{ github.workspace }}\build\bin\Release\bitcoind.exe'
262261
BITCOINCLI: '${{ github.workspace }}\build\bin\Release\bitcoin-cli.exe'
263-
BITCOINTX: '${{ github.workspace }}\build\bin\Release\bitcoin-tx.exe'
264262
BITCOINUTIL: '${{ github.workspace }}\build\bin\Release\bitcoin-util.exe'
265263
BITCOINWALLET: '${{ github.workspace }}\build\bin\Release\bitcoin-wallet.exe'
266264
BITCOINCHAINSTATE: '${{ github.workspace }}\build\bin\Release\bitcoin-chainstate.exe'
@@ -391,19 +389,16 @@ jobs:
391389
(Get-Content "test/config.ini") -replace '(?<=^SRCDIR=).*', '${{ github.workspace }}' -replace '(?<=^BUILDDIR=).*', '${{ github.workspace }}' -replace '(?<=^RPCAUTH=).*', '${{ github.workspace }}/share/rpcauth/rpcauth.py' | Set-Content "test/config.ini"
392390
Get-Content "test/config.ini"
393391
394-
- name: Set previous release directory
395-
run: |
396-
echo "PREVIOUS_RELEASES_DIR=${{ runner.temp }}/previous_releases" >> "$GITHUB_ENV"
392+
- name: Run util tests
393+
run: py -3 test/util/test_runner.py
397394

398-
- name: Get previous releases
399-
working-directory: test
400-
run: ./get_previous_releases.py --target-dir $PREVIOUS_RELEASES_DIR
395+
- name: Run rpcauth test
396+
run: py -3 test/util/rpcauth-test.py
401397

402398
- name: Run functional tests
403399
env:
404400
# TODO: Fix the excluded test and re-enable it.
405-
# feature_unsupported_utxo_db.py fails on windows because of emojis in the test data directory
406-
EXCLUDE: '--exclude wallet_multiwallet.py,feature_unsupported_utxo_db.py'
401+
EXCLUDE: '--exclude wallet_multiwallet.py'
407402
TEST_RUNNER_EXTRA: ${{ github.event_name != 'pull_request' && '--extended' || '' }}
408403
run: py -3 test/functional/test_runner.py --jobs $NUMBER_OF_PROCESSORS --ci --quiet --tmpdirprefix="$RUNNER_TEMP" --combinedlogslen=99999999 --timeout-factor=$TEST_RUNNER_TIMEOUT_FACTOR $EXCLUDE $TEST_RUNNER_EXTRA
409404

CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -592,9 +592,11 @@ set(Python3_FIND_FRAMEWORK LAST CACHE STRING "")
592592
set(Python3_FIND_UNVERSIONED_NAMES FIRST CACHE STRING "")
593593
mark_as_advanced(Python3_FIND_FRAMEWORK Python3_FIND_UNVERSIONED_NAMES)
594594
find_package(Python3 3.10 COMPONENTS Interpreter)
595-
if(NOT TARGET Python3::Interpreter)
595+
if(Python3_EXECUTABLE)
596+
set(PYTHON_COMMAND ${Python3_EXECUTABLE})
597+
else()
596598
list(APPEND configure_warnings
597-
"Minimum required Python not found."
599+
"Minimum required Python not found. Utils and rpcauth tests are disabled."
598600
)
599601
endif()
600602

@@ -638,6 +640,8 @@ add_subdirectory(doc)
638640

639641
add_subdirectory(src)
640642

643+
include(cmake/tests.cmake)
644+
641645
include(Maintenance)
642646
setup_split_debug_script()
643647
add_maintenance_targets()

CMakePresets.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@
6262
"name": "dev-mode",
6363
"displayName": "Developer mode, with all features/dependencies enabled",
6464
"binaryDir": "${sourceDir}/build_dev_mode",
65-
"errors": {"dev": true},
6665
"cacheVariables": {
6766
"BUILD_BENCH": "ON",
6867
"BUILD_CLI": "ON",

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Translations
7070
------------
7171

7272
Changes to translations as well as new translations can be submitted to
73-
[Bitcoin Core's Transifex page](https://explore.transifex.com/bitcoin/bitcoin/).
73+
[Bitcoin Core's Transifex page](https://www.transifex.com/bitcoin/bitcoin/).
7474

7575
Translations are periodically pulled from Transifex and merged into the git repository. See the
7676
[translation process](doc/translation_process.md) for details on how this works.

ci/lint/01_install.sh renamed to ci/lint/04_install.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66

77
export LC_ALL=C
88

9-
set -o errexit -o pipefail -o xtrace
10-
119
export CI_RETRY_EXE="/ci_retry --"
1210

1311
pushd "/"
@@ -40,7 +38,7 @@ python3 --version
4038

4139
${CI_RETRY_EXE} pip3 install \
4240
codespell==2.4.1 \
43-
lief==0.16.6 \
41+
lief==0.13.2 \
4442
mypy==1.4.1 \
4543
pyzmq==25.1.0 \
4644
ruff==0.5.5 \

ci/lint_imagefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ ENV LC_ALL=C.UTF-8
1212
COPY ./ci/retry/retry /ci_retry
1313
COPY ./.python-version /.python-version
1414
COPY ./ci/lint/container-entrypoint.sh /entrypoint.sh
15-
COPY ./ci/lint/01_install.sh /install.sh
15+
COPY ./ci/lint/04_install.sh /install.sh
1616

1717
RUN /install.sh && \
1818
echo 'alias lint="./ci/lint/06_script.sh"' >> ~/.bashrc && \

ci/lint_run_all.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ cp "./ci/retry/retry" "/ci_retry"
1313
cp "./.python-version" "/.python-version"
1414
mkdir --parents "/test/lint"
1515
cp --recursive "./test/lint/test_runner" "/test/lint/"
16-
set -o errexit; source ./ci/lint/01_install.sh
16+
set -o errexit; source ./ci/lint/04_install.sh
1717
set -o errexit
1818
./ci/lint/06_script.sh

ci/test/00_setup_env_i686_multiprocess.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export CI_IMAGE_PLATFORM="linux/amd64"
1313
export PACKAGES="llvm clang g++-multilib"
1414
export DEP_OPTS="DEBUG=1 MULTIPROCESS=1"
1515
export GOAL="install"
16-
export TEST_RUNNER_EXTRA="--v2transport --usecli"
16+
export TEST_RUNNER_EXTRA="--v2transport"
1717
export BITCOIN_CONFIG="\
1818
-DCMAKE_BUILD_TYPE=Debug \
1919
-DCMAKE_C_COMPILER='clang;-m32' \

ci/test/01_base_install.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

77
export LC_ALL=C.UTF-8
88

9-
set -o errexit -o pipefail -o xtrace
9+
set -ex
1010

11-
CFG_DONE="${BASE_ROOT_DIR}/ci.base-install-done" # Use a global setting to remember whether this script ran to avoid running it twice
11+
CFG_DONE="ci.base-install-done" # Use a global git setting to remember whether this script ran to avoid running it twice
1212

13-
if [ "$( cat "${CFG_DONE}" || true )" == "done" ]; then
13+
if [ "$(git config --global ${CFG_DONE})" == "true" ]; then
1414
echo "Skip base install"
1515
exit 0
1616
fi
@@ -105,4 +105,4 @@ if [ -n "$XCODE_VERSION" ] && [ ! -d "${DEPENDS_DIR}/SDKs/${OSX_SDK_BASENAME}" ]
105105
tar -C "${DEPENDS_DIR}/SDKs" -xf "$OSX_SDK_PATH"
106106
fi
107107

108-
echo -n "done" > "${CFG_DONE}"
108+
git config --global ${CFG_DONE} "true"

0 commit comments

Comments
 (0)