Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync with the main repo #91

Merged
merged 493 commits into from
Jan 5, 2022
Merged

Sync with the main repo #91

merged 493 commits into from
Jan 5, 2022

Conversation

hebasto
Copy link
Member

@hebasto hebasto commented Dec 20, 2021

Sync with the main repo up to bitcoin/bitcoin@3699786.

To avoid merge conflicts, 22 commits have been reverted following the commit history. The first 15 of them belong to #87.

20 of them have been cherry-picked back in order of their initial appearance in the commit history.

Commit 7fd3c91 "build, qt: Add RISC-V detection" is no longer needed as it has been implemented in the upstream.

Commits 26ce35f "build, qml: Fix compiling with GCC 11" and 95b80c0 "Avoid applying of a patch with fuzz 1" have been combined into a new single commit "build, qml: Fix compiling with GCC 11".

A "build" part of the commit "qml, build, doc: Allow import QtQuick.Layouts" has been moved into the "build, qml: Add qtdeclarative module" commit.

Also Qt Quick module versions were bumped according to Qt 5.15.2.

An excerpt from Qt "Configure summary" on Fedora 35:

Qt QML:
  QML network support .................... no
  QML debugging and profiling support .... no
  QML just-in-time compiler .............. yes
  QML sequence object .................... yes
  QML XML http request ................... no
  QML Locale ............................. yes
Qt QML Models:
  QML list model ......................... yes
  QML delegate model ..................... yes
Qt Quick:
  Direct3D 12 ............................ no
  AnimatedImage item ..................... yes
  Canvas item ............................ yes
  Support for Qt Quick Designer .......... yes
  Flipable item .......................... yes
  GridView item .......................... yes
  ListView item .......................... yes
  TableView item ......................... yes
  Path support ........................... yes
  PathView item .......................... yes
  Positioner items ....................... yes
  Repeater item .......................... yes
  ShaderEffect item ...................... yes
  Sprite item ............................ yes
Qt Quick Controls 2:
  Styles ................................. Default Fusion Imagine Material Universal
Qt Quick Templates 2:
  Hover support .......................... yes
  Multi-touch support .................... yes

Guix builds:

$ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
69492cd3777954f2771cfe8e733c8dba18a9182310a3fbd16b04e3663c846e46  guix-build-c8f4e0398d0e/output/aarch64-linux-gnu/SHA256SUMS.part
b2b3a06024980b83e9c8277fdb0f70ec7d5d15ada04124e13d1746baf5c6ba95  guix-build-c8f4e0398d0e/output/aarch64-linux-gnu/bitcoin-c8f4e0398d0e-aarch64-linux-gnu-debug.tar.gz
cc0404ba6c5161a7da72fe1905d4476209ad2e43796df3d667b844c74f313f2e  guix-build-c8f4e0398d0e/output/aarch64-linux-gnu/bitcoin-c8f4e0398d0e-aarch64-linux-gnu.tar.gz
c14a4f1cee523117be00863b5751c03b9ca24cddf76920adf28cf29adef5016c  guix-build-c8f4e0398d0e/output/arm-linux-gnueabihf/SHA256SUMS.part
f1d0b7202223296bcdde9878c9bfd60253c2d2530a74a3c94ed82b90568cc866  guix-build-c8f4e0398d0e/output/arm-linux-gnueabihf/bitcoin-c8f4e0398d0e-arm-linux-gnueabihf-debug.tar.gz
d07722b96f07166328d218716e3ff7dabcf8f6d35f906378214a97b88f6cbb09  guix-build-c8f4e0398d0e/output/arm-linux-gnueabihf/bitcoin-c8f4e0398d0e-arm-linux-gnueabihf.tar.gz
89ba246d916d5805159bd92d23bd620a3cf6c6bdee962214120c5005eabd4b75  guix-build-c8f4e0398d0e/output/dist-archive/bitcoin-c8f4e0398d0e.tar.gz
1dcf2101a3c766724d0fdbeca7c61b3d501081d3c166b3b9d9e52418f6f34bb0  guix-build-c8f4e0398d0e/output/powerpc64-linux-gnu/SHA256SUMS.part
b563412fc17fc5189a8e8320096113f4d5c42011904c78e92db21929e8c565f5  guix-build-c8f4e0398d0e/output/powerpc64-linux-gnu/bitcoin-c8f4e0398d0e-powerpc64-linux-gnu-debug.tar.gz
fa38f1520dc04e2fca68031bbd13ff67c42c7bf26003e93a7927dde8e904da6b  guix-build-c8f4e0398d0e/output/powerpc64-linux-gnu/bitcoin-c8f4e0398d0e-powerpc64-linux-gnu.tar.gz
beac355a65c78c93963c23707667ce7a96e2550edcdad37dfc7c1ce6dbc5bf14  guix-build-c8f4e0398d0e/output/powerpc64le-linux-gnu/SHA256SUMS.part
c813ba3b3de89d331138cdcec609efe0fd7e3320b3c28a7c4fcf5537bb05c614  guix-build-c8f4e0398d0e/output/powerpc64le-linux-gnu/bitcoin-c8f4e0398d0e-powerpc64le-linux-gnu-debug.tar.gz
2d22178891c3a605a1a4e2a35797bf4e38dfea0245189605d7baf7165227ce75  guix-build-c8f4e0398d0e/output/powerpc64le-linux-gnu/bitcoin-c8f4e0398d0e-powerpc64le-linux-gnu.tar.gz
9290ceb49f237f78ae0aa1ff746f4a36d0cfe0db2caf82811c263133b4dab9d6  guix-build-c8f4e0398d0e/output/riscv64-linux-gnu/SHA256SUMS.part
562ddb5af2cd8d605bb933d516210525459398f52e7a6070e930c93fd2861b80  guix-build-c8f4e0398d0e/output/riscv64-linux-gnu/bitcoin-c8f4e0398d0e-riscv64-linux-gnu-debug.tar.gz
65c6faa6a69e288ff1cf26d2f57dc407ef398e6eb86aac9f38035037960b4472  guix-build-c8f4e0398d0e/output/riscv64-linux-gnu/bitcoin-c8f4e0398d0e-riscv64-linux-gnu.tar.gz
647c127b1b656e667bcb4435a4472ee680027515f6cecd7b0a07f022dc7cf5e3  guix-build-c8f4e0398d0e/output/x86_64-apple-darwin/SHA256SUMS.part
3eeb8449b9cb350ff442211df7b4f6858fbff610ed4157d1585800efc16bab81  guix-build-c8f4e0398d0e/output/x86_64-apple-darwin/bitcoin-c8f4e0398d0e-osx-unsigned.dmg
b5f9b759fb69a349f41557d0f78df2367f7d52f56d3c2e8f71ee4533b5be4bc7  guix-build-c8f4e0398d0e/output/x86_64-apple-darwin/bitcoin-c8f4e0398d0e-osx-unsigned.tar.gz
83b98e6c298dbf32997d90d1001d8257eeffec51a3feea7df454d122b5d512a5  guix-build-c8f4e0398d0e/output/x86_64-apple-darwin/bitcoin-c8f4e0398d0e-osx64.tar.gz
ad7a69cba6a331e36a7069f2391903b4f63584eccbd74009dffc2dd135d18efe  guix-build-c8f4e0398d0e/output/x86_64-linux-gnu/SHA256SUMS.part
290ace50b1049a8494370a68191b86e4beab15b0afe0947ea2090f98bc1c037c  guix-build-c8f4e0398d0e/output/x86_64-linux-gnu/bitcoin-c8f4e0398d0e-x86_64-linux-gnu-debug.tar.gz
6713f955a9d4ab488cfaf3b97d4d59a0a11c6bdaeba27ddbb15a2d1fb82e3c7c  guix-build-c8f4e0398d0e/output/x86_64-linux-gnu/bitcoin-c8f4e0398d0e-x86_64-linux-gnu.tar.gz
f85f19a7437a3eec7597cb6e855d6e529051634bdea74b94e2d17fb1862d810e  guix-build-c8f4e0398d0e/output/x86_64-w64-mingw32/SHA256SUMS.part
d307ecae13388ed373d8252971d5b9949a21e016d03bd2726a4455a7af35f8ba  guix-build-c8f4e0398d0e/output/x86_64-w64-mingw32/bitcoin-c8f4e0398d0e-win-unsigned.tar.gz
1f281e0e42cf8350ec9d51c875b8fff7f20b11e5e33dda08dcb2ee8a2c33615a  guix-build-c8f4e0398d0e/output/x86_64-w64-mingw32/bitcoin-c8f4e0398d0e-win64-debug.zip
a8c04d2a61852ed9bbd9a01ed9419c3eb52c788d942a5b24f8e45c2d29d0df69  guix-build-c8f4e0398d0e/output/x86_64-w64-mingw32/bitcoin-c8f4e0398d0e-win64-setup-unsigned.exe
a67317e2ef08346858aa766176a79449639c1780ed4499d7a14e2ebcf7ab9ffc  guix-build-c8f4e0398d0e/output/x86_64-w64-mingw32/bitcoin-c8f4e0398d0e-win64.zip

Windows
macOS
Android

MarcoFalke and others added 30 commits December 8, 2021 11:39
-BEGIN VERIFY SCRIPT-
 sed -i -e 's|, /\* optional \*/ true,|, /*optional=*/true,|g' $( git grep -l ', /\* optional \*/ true,' )
-END VERIFY SCRIPT-
…mpeer

aaaa34e doc: Add missing optional to getblockfrompeer (MarcoFalke)

Pull request description:

  Can be reviewed with `--word-diff-regex=. --ignore-all-space`

ACKs for top commit:
  Sjors:
    utACK aaaa34e

Tree-SHA512: 7f46c82a46b8cc19f7eb549b9aa13be8cd6849a8ef8a2ddda6d1eee6978d099fccadd29a2bf817f44d601b905f5d5f6b5d8f4f54be5ee8b914b520359c058e68
It is better to ues an optional to determine whether the sighash type
is set rather than using 0 as a magic number.
Make the behavior align with the help text by actually using
SIGHASH_DEFAULT as the default sighash for signing PSBTs.
fa77f95 fuzz: Fix RPC internal bug detection (MarcoFalke)

Pull request description:

  Previously the fuzz test considered any exception which contains the string `Internal bug detected` (magic string) as a bug. This is not true when the user (fuzzer) passes in the magic string from outside.

  Fix that by:

  1. Changing the format the string in `NonFatalCheckError` to start with the magic string.
  2. Only treat exceptions that start with the magic string as internal bugs.

  This should fix the bug because any other exception shouldn't start with the magic string.

  To test:

  ```
  echo 'bG9nZ2luZ1y+bUludGVybmFsIGJ1ZyBkZXRlY3RlZAAXCqNcjqNcjuYjeg==' | base64 --decode > /tmp/a
  FUZZ=rpc ./src/test/fuzz/fuzz /tmp/a
  ```

  Before:
  ```
  fuzz: test/fuzz/rpc.cpp:365: void rpc_fuzz_target(FuzzBufferType): Assertion `error_msg.find("trigger_internal_bug") != std::string::npos' failed.
  ```

  After:
  ```
  Executed /tmp/a in 0 ms

ACKs for top commit:
  shaavan:
    crACK fa77f95

Tree-SHA512: 079bc97b6ce0cbad8603c7b577cc1ac0fd19e884ccbaba317588b91d98b36afeaa8cb398344b52bf12c9fd1737b3fdd8452b4e833a3b06cb3c789651955f78b8
Currently the test performs the wallet-relevant parts if
_any_ wallet type support is compiled in, independently of
whether the test is run with legacy or descriptor wallet
specified. This leads to a failure if the test is started
with the `--legacy-wallet` parameter, but bitcoind is
compiled without BDB support.

Fix this by checking if the specified wallet type (BDB for
legacy wallet, SQLite for descriptor wallet) is available.
…ecified wallet type availability

b57bf25 test: interface_bitcoin_cli.py: check specified wallet type availability (Sebastian Falbesoner)

Pull request description:

  Currently the test `interface_bitcoin_cli.py` performs the wallet-relevant parts if _any_ wallet type support is compiled in, independently of
  whether the test is run with legacy or descriptor wallet specified. This leads to a failure if the test is started with the `--legacy-wallet` parameter, but bitcoind is compiled without BDB support, see e.g
   bitcoin/bitcoin#23686 (comment)

  Fix this by checking if the specified wallet type (BDB for legacy wallet, SQLite for descriptor wallet) is available.

  Should further pave the way for #23682.

ACKs for top commit:
  achow101:
    ACK b57bf25

Tree-SHA512: ddb5a94ba61133eff8de79d4946b3b9d476232b26e83bf768894cac4691e72602f88b6c02c72b992e12c2feb9bff1f0a2e0a265948a00954311104add1347184
The test currently leads to a failure if in general wallet
support is compiled, but the library for the specified type
(BDB/SQLite) is not, i.e.  if started with the
`--legacy-wallet` parameter, but bitcoind is compiled
without BDB support.

Fix this by checking if the specified wallet type (BDB for
legacy wallet, SQLite for descriptor wallet) is available.

Also move the helper `is_specified_wallet_compiled()` to the
test framework's class BitcoinTestFramework first, so it can
be reused.
faa0833 doc: Normalize RPC description whitespace (MarcoFalke)

Pull request description:

  It is tedious to manually add trailing newlines after the description so that there is an empty new line before the `Arguments` section.

  Fix that by adding it with C++ code.

ACKs for top commit:
  fanquake:
    ACK faa0833

Tree-SHA512: 061786c7f19d767f2b7a0362b948e34d181f4cc740a60211756da29ece7554e95be39a9beec3e201eddc8da3ea7e22ac917479eae04b230bb7b0db7a9647af8c
…etter maintainability

2f356a0 scripted-diff: Drop Darwin version for better maintainability (Hennadii Stepanov)

Pull request description:

  After this PR, any macOS tools version bumping in the future will touch fewer files in the repo.

  Pointing a Darwin version for the `--host` system does not matter for the following reasons:

  - in terms of the resulted binaries, we should only care about the minimum supported macOS version which is a separated parameter in our build system.

  - in terms of the build system itself, the usage of the `$(host)` variable is self-consistent enough. Btw `$(host_os)` value already has the version dropped:
  ```
  $ make -C depends --no-print-directory print-host_os HOST=x86_64-apple-darwin19
  host_os=darwin
  ```

ACKs for top commit:
  gruve-p:
    ACK bitcoin/bitcoin@2f356a0
  promag:
    ACK 2f356a0.
  fanquake:
    ACK 2f356a0

Tree-SHA512: 374896ab0ba02b0d8b4b21431fe963bd213b0d09586e0898c13a4c5fa294c1b693f1b2c92880c245c4157c14217b4825b36522f461930477f4d2a727086ebb2a
…own implementation

5b559dc Swap out hashlib.ripemd160 for own implementation (Pieter Wuille)
ad3e9e1 Add pure Python RIPEMD-160 (Pieter Wuille)

Pull request description:

  Closes #23710.

ACKs for top commit:
  jamesob:
    ACK bitcoin/bitcoin@5b559dc, pending CI

Tree-SHA512: dcd4ea2027eac572f7ab0da434b081b9a5d6b78675e559258a446b4d254b29d93c4d2cc12da4a28303543d6d99f5f2246fde4052e84af81d18e04399b137b39e
…llet type availability

84bc35d test: feature_rbf.py: check specified wallet type availability (Sebastian Falbesoner)

Pull request description:

  The test currently leads to a failure if in general wallet support is compiled, but the library for the specified type (BDB/SQLite) is not, i.e.  if started with the `--legacy-wallet` parameter, but bitcoind is compiled without BDB support, see e.g. bitcoin/bitcoin#23682 (comment)

  Fix this by checking if the specified wallet type (BDB for legacy wallet, SQLite for descriptor wallet) is available.

  Also move the helper `is_specified_wallet_compiled()` to the
  test framework's class BitcoinTestFramework first, so it can be reused.

  Should further pave the way for #23682. On my local instance without BDB compiled, all targets in test_runner pass now.

ACKs for top commit:
  mzumsande:
    ACK 84bc35d, changes loook good for me and I confirmed that this fixes the error encountered on master when running the test `--without-bdb`.

Tree-SHA512: 1575c03c793c8e0ac195d0914eff75d02604301c8fb77d0fdb7c0b245561569c0c7db387ef4de499044b68ab6e14b4b78b955f6e74c84197bcaed95f439c9824
fa9aaf8 scripted-diff: Use named args in RPC docs (MarcoFalke)

Pull request description:

  Incorrect named args are source of bugs, like #22979.

  To allow them being checked by `clang-tidy`, use a format it can understand.

ACKs for top commit:
  fanquake:
    ACK fa9aaf8 - checked `clang-tidy` and it's fine here, (but throwing errors in other files. i.e `wallet/test/wallet_tests.cpp`).

Tree-SHA512: e09dae8ee999a5c4819e6f848c12139593ca0e915e645c8fabeb97c379188fb9104d286c02c71f590abc64cdec125f78026735f83e016111976baa49d588a9bc
Check that descriptors returned by external signers have been parsed properly when creating a new wallet.
…oin-wallet tool

3431839 util, refactor: Improve headers for bitcoin-wallet tool (Hennadii Stepanov)

Pull request description:

  This PR:
  - removes unneeded `#include <wallet/wallet.h>` from `<wallet/wallettool.h>`
  - introduces class forward declaration in `<wallet/wallettool.h>`
  - added `#include <config/bitcoin-config.h>` to `wallet/wallettool.cpp` where the `USE_BDB` macro is used

Top commit has no ACKs.

Tree-SHA512: a0de560d821f8b570ae806a1165b9b382c9e0b339687d932052fa4c38ab2ba493e7e050f19adc02ad7db40c42cf88ac1d37209f9071494a0ab268ed33ff22b9f
6575d35 build: Bump Fonconfig version up to 2.12.6 (Hennadii Stepanov)

Pull request description:

  This PR gets rid of `remove_char_width_usage.patch`.

  Some additional observations:

  1. Newer Fontconfig versions (2.13.0 and 2.13.1) introduce a new dependency, `uuid`, in the [`7b48fd3dd406b926f0e5240b211f72197ed538a9`](https://gitlab.freedesktop.org/fontconfig/fontconfig/-/commit/7b48fd3dd406b926f0e5240b211f72197ed538a9) commit
  2. In Fonconfig 2.13.1 (the current stable) excludes the `fcobjshash.h` from the distributive archive (see [`31269e3589e0e6432d12f55db316f4c720a090b5`](https://gitlab.freedesktop.org/fontconfig/fontconfig/-/commit/31269e3589e0e6432d12f55db316f4c720a090b5)), that makes our `gperf_header_regen.patch` unusable, and requires `gperf` as a dependency.

ACKs for top commit:
  fanquake:
    ACK 6575d35 - from the best I can determine this doesn't have any versioning / ABI implications. The ABI difference between 2.12.1 and 2.12.6 is two symbol additions, neither of which are used by Qt. Fontconfig seems to be better at maintaining backwards compatibility compared to a library like Freetype.

Tree-SHA512: 36780a0c5a658469697e524d682ebab56c320cb04f8297bc215f4552f183d4f560501fb0a869982fd9053d4a2d571c7fd971d8f5e96c9da9a9d142c485e3baa4
…ing for macOS

19f3896 build: Fix x86_64 <-> arm64 cross-compiling for macOS (Hennadii Stepanov)

Pull request description:

  Currently, on master (111c3e0), dependencies are built for the build system architecture, not the provided host.

  On Intel-based macOS Big Sur 11.6.1 (20G224):
  ```
  % make -C depends HOST=arm64-apple-darwin20
  % lipo -info depends/arm64-apple-darwin20/lib/libsqlite3.a
  Non-fat file: depends/arm64-apple-darwin20/lib/libsqlite3.a is architecture: x86_64
  ```

  On M1-based macOS Monterey 12.0.1 (21A559) the `boost` package building fails with multiple errors like that:
  ```
  % make -C depends boost HOST=x86_64-apple-darwin19
  ...
  error: option 'cf-protection=return' cannot be specified on this target
  error: option 'cf-protection=branch' cannot be specified on this target
  2 errors generated.
  ```

  This PR allows to cross-compile as follows:
  - on Intel-based macOS Big Sur 11.6.1 (20G224):
  ```
  % make -C depends HOST=arm64-apple-darwin20
  % lipo -info depends/arm64-apple-darwin20/lib/libsqlite3.a
  Non-fat file: depends/arm64-apple-darwin20/lib/libsqlite3.a is architecture: arm64
  % CONFIG_SITE=$PWD/depends/arm64-apple-darwin20/share/config.site ./configure
  % make
  % lipo -info src/qt/bitcoin-qt
  Non-fat file: src/qt/bitcoin-qt is architecture: arm64
  ```

  - on M1-based macOS Monterey 12.0.1 (21A559):
  ```
  % make -C depends HOST=x86_64-apple-darwin19
  % CONFIG_SITE=$PWD/depends/x86_64-apple-darwin19/share/config.site ./configure
  % make
  % lipo -info src/qt/bitcoin-qt
  Non-fat file: src/qt/bitcoin-qt is architecture: x86_64
  ```

  No behavior change for other builder-host pairs.

  This is an alternative to bitcoin/bitcoin#22506.

ACKs for top commit:
  fanquake:
    ACK 19f3896 - this is definitely cleaner than the approach in #22506. I've tested the x86_64 -> arm64 and arm64 -> x86_64 cross-compiles. Going to go-ahead and merge this given it's scoped to building for darwin targets, on darwin. Not sure if this is something we'll actually see used very often.

Tree-SHA512: 67a7fed1db79bc43d41aabb5a676f90417a879e5dcffec1384c288b56ee32ba06ae3819abdc7aca85b81af6e782bcfff5c83a67a455560249fa095a807fc1187
…nstall_db4.sh

b062da0 contrib: add check for wget command in install_db4.sh (Florian Baumgartl)

Pull request description:

  This PR is motivated by bitcoin/bitcoin@7bb8eb0 commit (see also bitcoin/bitcoin#23579) and ensures that `install_db4.sh` will check for `curl` and `wget` utilities. Currently, the conditional statement in the `http_get()` function assumes that `wget` is always available but we actually do not know it since there is no check or validation for the `wget` command. So let's make sure that we check for both commands and print an error message if they are missing.

ACKs for top commit:
  jamesob:
    ACK bitcoin/bitcoin@b062da0
  laanwj:
    Tested ACK b062da0
  shaavan:
    ACK b062da0

Tree-SHA512: bfc1ccad9a5b99764b759e02dde1976616c2af4747b7d5af8e71d33624c2cb21d93a09a60d244756e86bbd5fd7541331c62d7eb84d3458b6a059f1d9cb2a5f42
…structor

fa1b63c test: Replace hashlib.new with named constructor (MarcoFalke)

Pull request description:

  A small refactor that doesn't matter too much, but it using the named constructor is nice because:
  * It clarifies that it is a built-in function
  * It is (trivially) faster and less code.

ACKs for top commit:
  Zero-1729:
    ACK fa1b63c
  w0xlt:
    ACK fa1b63c

Tree-SHA512: d23dc4552c1e6fc1f90f8272e47e4efcbe727f0b66a6f6a264db8a50ee6cb6d57a2809befcb95fda6725136672268633817a03dd1859f2298d20e3f9e0ca4a7f
…capsulating a coin selection solution

05300c1 Use SelectionResult in SelectCoins (Andrew Chow)
9d9b101 Use SelectionResult in AttemptSelection (Andrew Chow)
bb50850 Use SelectionResult for waste calculation (Andrew Chow)
e8f7ae5 Make an OutputGroup for preset inputs (Andrew Chow)
51a9c00 Return SelectionResult from SelectCoinsSRD (Andrew Chow)
0ef6184 Return SelectionResult from KnapsackSolver (Andrew Chow)
60d2ca7 Return SelectionResult from SelectCoinsBnB (Andrew Chow)
a339add Make member variables of SelectionResult private (Andrew Chow)
cbf0b9f scripted-diff: Use SelectionResult in coin selector tests (Andrew Chow)
9d1d86d Introduce SelectionResult struct (Andrew Chow)
94d851d Fix bnb_search_test to use set equivalence for (Andrew Chow)

Pull request description:

  Instead of returning a set of selected coins and their total value as separate items, encapsulate both of these, and other variables, into a new `SelectionResult` struct. This allows us to have all of the things relevant to a coin selection solution be in a single object. `SelectionResult` enables us to implement the waste calculation in a cleaner way.

  All of the coin selection functions (`SelectCoinsBnB`, `KnapsackSolver`, `AttemptSelection`, and `SelectCoins`) are changed to use a `SelectionResult` as the output parameter.

  Based on #22009

ACKs for top commit:
  laanwj:
    Code review ACK 05300c1

Tree-SHA512: e4dbb4d78a6cda9c237d230b19e7265591efac5a101a64e6970f0654e2c4f93d13bb5d07b98e8c7b8d37321753dbfc94c28c3a7810cb1c59b5bc29b08a8493ef
…escriptors` and add to test runner

61fb410 test: add feature_coinstatsindex.py --descriptors to test_runner.py (Sebastian Falbesoner)
50b044a test: fix test feature_coinstatsindex.py for descriptor wallets (Sebastian Falbesoner)

Pull request description:

  The functional test feature_coinstatsindex.py currently fails on master branch, if descriptor wallets are used (argument `--descriptors`; or if BDB is not compiled, see bitcoin/bitcoin#23682 (comment)). This is due to the fact that different change output types are used for created transactions (P2WPKH for legacy wallets, P2TR for descriptor wallets; the former doesn't have a ScriptPubKeyMan for bech32m), resulting in different tx sizes and hence also fees. Fix this by explicitely setting the output type via passing both `-addresstype=bech32` and `-changetype=bech32` as argument. The former would not be needed by now, but makes the test more deterministic and avoids a failure if bech32m becomes the default address type.

  Should further pave the way for #23682.

ACKs for top commit:
  MarcoFalke:
    cr ACK 61fb410

Tree-SHA512: 300a53f539c0b874da5fc1dd1e4e41b9408dc5526c5858c79f0aabf2ab07e57df4c9cc627fafe25246206752754a91a2977a3df8f8b2d98fb98e51c7e4d81633
hebasto and others added 10 commits December 24, 2021 13:04
-BEGIN VERIFY SCRIPT-
QML_FILES=$(git ls-files '*.qml')
sed -i -e 's/import QtQuick 2.12/import QtQuick 2.15/' -- $QML_FILES
sed -i -e 's/import QtQuick.Controls 2.12/import QtQuick.Controls 2.15/' -- $QML_FILES
sed -i -e 's/import QtQuick.Layouts 1.11/import QtQuick.Layouts 1.15/' -- $QML_FILES
-END VERIFY SCRIPT-
Compiler versions:
 - bionic: 8.4.0-1ubuntu1
 - hirsute: 8.4.0-7ubuntu3
@hebasto
Copy link
Member Author

hebasto commented Dec 24, 2021

Updated b7c585c -> c8f4e03 (pr91.03 -> pr91.05):

@hebasto
Copy link
Member Author

hebasto commented Dec 24, 2021

Guix build hashes in the OP have been updated.

@jarolrod
Copy link
Member

new hashes, mine match @hebasto:

69492cd3777954f2771cfe8e733c8dba18a9182310a3fbd16b04e3663c846e46  guix-build-c8f4e0398d0e/output/aarch64-linux-gnu/SHA256SUMS.part
b2b3a06024980b83e9c8277fdb0f70ec7d5d15ada04124e13d1746baf5c6ba95  guix-build-c8f4e0398d0e/output/aarch64-linux-gnu/bitcoin-c8f4e0398d0e-aarch64-linux-gnu-debug.tar.gz
cc0404ba6c5161a7da72fe1905d4476209ad2e43796df3d667b844c74f313f2e  guix-build-c8f4e0398d0e/output/aarch64-linux-gnu/bitcoin-c8f4e0398d0e-aarch64-linux-gnu.tar.gz
c14a4f1cee523117be00863b5751c03b9ca24cddf76920adf28cf29adef5016c  guix-build-c8f4e0398d0e/output/arm-linux-gnueabihf/SHA256SUMS.part
f1d0b7202223296bcdde9878c9bfd60253c2d2530a74a3c94ed82b90568cc866  guix-build-c8f4e0398d0e/output/arm-linux-gnueabihf/bitcoin-c8f4e0398d0e-arm-linux-gnueabihf-debug.tar.gz
d07722b96f07166328d218716e3ff7dabcf8f6d35f906378214a97b88f6cbb09  guix-build-c8f4e0398d0e/output/arm-linux-gnueabihf/bitcoin-c8f4e0398d0e-arm-linux-gnueabihf.tar.gz
89ba246d916d5805159bd92d23bd620a3cf6c6bdee962214120c5005eabd4b75  guix-build-c8f4e0398d0e/output/dist-archive/bitcoin-c8f4e0398d0e.tar.gz
1dcf2101a3c766724d0fdbeca7c61b3d501081d3c166b3b9d9e52418f6f34bb0  guix-build-c8f4e0398d0e/output/powerpc64-linux-gnu/SHA256SUMS.part
b563412fc17fc5189a8e8320096113f4d5c42011904c78e92db21929e8c565f5  guix-build-c8f4e0398d0e/output/powerpc64-linux-gnu/bitcoin-c8f4e0398d0e-powerpc64-linux-gnu-debug.tar.gz
fa38f1520dc04e2fca68031bbd13ff67c42c7bf26003e93a7927dde8e904da6b  guix-build-c8f4e0398d0e/output/powerpc64-linux-gnu/bitcoin-c8f4e0398d0e-powerpc64-linux-gnu.tar.gz
beac355a65c78c93963c23707667ce7a96e2550edcdad37dfc7c1ce6dbc5bf14  guix-build-c8f4e0398d0e/output/powerpc64le-linux-gnu/SHA256SUMS.part
c813ba3b3de89d331138cdcec609efe0fd7e3320b3c28a7c4fcf5537bb05c614  guix-build-c8f4e0398d0e/output/powerpc64le-linux-gnu/bitcoin-c8f4e0398d0e-powerpc64le-linux-gnu-debug.tar.gz
2d22178891c3a605a1a4e2a35797bf4e38dfea0245189605d7baf7165227ce75  guix-build-c8f4e0398d0e/output/powerpc64le-linux-gnu/bitcoin-c8f4e0398d0e-powerpc64le-linux-gnu.tar.gz
9290ceb49f237f78ae0aa1ff746f4a36d0cfe0db2caf82811c263133b4dab9d6  guix-build-c8f4e0398d0e/output/riscv64-linux-gnu/SHA256SUMS.part
562ddb5af2cd8d605bb933d516210525459398f52e7a6070e930c93fd2861b80  guix-build-c8f4e0398d0e/output/riscv64-linux-gnu/bitcoin-c8f4e0398d0e-riscv64-linux-gnu-debug.tar.gz
65c6faa6a69e288ff1cf26d2f57dc407ef398e6eb86aac9f38035037960b4472  guix-build-c8f4e0398d0e/output/riscv64-linux-gnu/bitcoin-c8f4e0398d0e-riscv64-linux-gnu.tar.gz
647c127b1b656e667bcb4435a4472ee680027515f6cecd7b0a07f022dc7cf5e3  guix-build-c8f4e0398d0e/output/x86_64-apple-darwin/SHA256SUMS.part
3eeb8449b9cb350ff442211df7b4f6858fbff610ed4157d1585800efc16bab81  guix-build-c8f4e0398d0e/output/x86_64-apple-darwin/bitcoin-c8f4e0398d0e-osx-unsigned.dmg
b5f9b759fb69a349f41557d0f78df2367f7d52f56d3c2e8f71ee4533b5be4bc7  guix-build-c8f4e0398d0e/output/x86_64-apple-darwin/bitcoin-c8f4e0398d0e-osx-unsigned.tar.gz
83b98e6c298dbf32997d90d1001d8257eeffec51a3feea7df454d122b5d512a5  guix-build-c8f4e0398d0e/output/x86_64-apple-darwin/bitcoin-c8f4e0398d0e-osx64.tar.gz
ad7a69cba6a331e36a7069f2391903b4f63584eccbd74009dffc2dd135d18efe  guix-build-c8f4e0398d0e/output/x86_64-linux-gnu/SHA256SUMS.part
290ace50b1049a8494370a68191b86e4beab15b0afe0947ea2090f98bc1c037c  guix-build-c8f4e0398d0e/output/x86_64-linux-gnu/bitcoin-c8f4e0398d0e-x86_64-linux-gnu-debug.tar.gz
6713f955a9d4ab488cfaf3b97d4d59a0a11c6bdaeba27ddbb15a2d1fb82e3c7c  guix-build-c8f4e0398d0e/output/x86_64-linux-gnu/bitcoin-c8f4e0398d0e-x86_64-linux-gnu.tar.gz
f85f19a7437a3eec7597cb6e855d6e529051634bdea74b94e2d17fb1862d810e  guix-build-c8f4e0398d0e/output/x86_64-w64-mingw32/SHA256SUMS.part
d307ecae13388ed373d8252971d5b9949a21e016d03bd2726a4455a7af35f8ba  guix-build-c8f4e0398d0e/output/x86_64-w64-mingw32/bitcoin-c8f4e0398d0e-win-unsigned.tar.gz
1f281e0e42cf8350ec9d51c875b8fff7f20b11e5e33dda08dcb2ee8a2c33615a  guix-build-c8f4e0398d0e/output/x86_64-w64-mingw32/bitcoin-c8f4e0398d0e-win64-debug.zip
a8c04d2a61852ed9bbd9a01ed9419c3eb52c788d942a5b24f8e45c2d29d0df69  guix-build-c8f4e0398d0e/output/x86_64-w64-mingw32/bitcoin-c8f4e0398d0e-win64-setup-unsigned.exe
a67317e2ef08346858aa766176a79449639c1780ed4499d7a14e2ebcf7ab9ffc  guix-build-c8f4e0398d0e/output/x86_64-w64-mingw32/bitcoin-c8f4e0398d0e-win64.zip

@promag
Copy link
Contributor

promag commented Jan 5, 2022

Tested ACK c8f4e03 on macOS 12.0.1, Android 10, and Windows 10. Guix build hashes match as well.

@hebasto hebasto merged commit 2c59fa7 into bitcoin-core:main Jan 5, 2022
@hebasto hebasto deleted the 211219-sync branch January 5, 2022 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.