aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml19
-rw-r--r--ci/test/00_setup_env_mac_functional.sh18
-rwxr-xr-xci/test/04_install.sh42
-rwxr-xr-xci/test/05_before_script.sh35
-rwxr-xr-xci/test/06_script_a.sh8
-rwxr-xr-xci/test/06_script_b.sh5
-rw-r--r--src/arith_uint256.cpp2
-rw-r--r--src/arith_uint256.h2
-rw-r--r--src/bench/base58.cpp1
-rw-r--r--src/bench/bench.h1
-rw-r--r--src/bench/block_assemble.cpp1
-rw-r--r--src/bench/chacha20.cpp1
-rw-r--r--src/bench/chacha_poly_aead.cpp1
-rw-r--r--src/bench/crypto_hash.cpp1
-rw-r--r--src/bench/duplicate_inputs.cpp3
-rw-r--r--src/bench/lockedpool.cpp1
-rw-r--r--src/bench/mempool_eviction.cpp2
-rw-r--r--src/bench/poly1305.cpp1
-rw-r--r--src/bench/rollingbloom.cpp1
-rw-r--r--src/bench/rpc_blockchain.cpp1
-rw-r--r--src/bench/rpc_mempool.cpp2
-rw-r--r--src/bitcoin-cli.cpp1
-rw-r--r--src/bitcoin-tx.cpp1
-rw-r--r--src/bitcoin-wallet.cpp2
-rw-r--r--src/bitcoind.cpp1
-rw-r--r--src/blockencodings.h1
-rw-r--r--src/chain.h72
-rw-r--r--src/compressor.cpp1
-rw-r--r--src/consensus/merkle.h2
-rw-r--r--src/consensus/params.h2
-rw-r--r--src/crypto/aes.cpp1
-rw-r--r--src/crypto/chacha_poly_aead.cpp1
-rw-r--r--src/crypto/sha256.cpp1
-rw-r--r--src/crypto/sha256_shani.cpp1
-rw-r--r--src/dbwrapper.h1
-rw-r--r--src/dummywallet.cpp1
-rw-r--r--src/httprpc.cpp2
-rw-r--r--src/httprpc.h2
-rw-r--r--src/httpserver.cpp1
-rw-r--r--src/httpserver.h1
-rw-r--r--src/index/base.h1
-rw-r--r--src/interfaces/chain.cpp2
-rw-r--r--src/interfaces/node.cpp3
-rw-r--r--src/interfaces/wallet.cpp2
-rw-r--r--src/key_io.cpp1
-rw-r--r--src/miner.cpp2
-rw-r--r--src/net.cpp3
-rw-r--r--src/net_processing.cpp1
-rw-r--r--src/netaddress.h1
-rw-r--r--src/node/coinstats.cpp2
-rw-r--r--src/node/transaction.cpp1
-rw-r--r--src/node/transaction.h1
-rw-r--r--src/noui.cpp2
-rw-r--r--src/policy/fees.cpp1
-rw-r--r--src/prevector.h1
-rw-r--r--src/primitives/block.cpp1
-rw-r--r--src/protocol.h1
-rw-r--r--src/psbt.cpp1
-rw-r--r--src/qt/bantablemodel.cpp2
-rw-r--r--src/qt/bitcoin.cpp1
-rw-r--r--src/qt/bitcoingui.cpp6
-rw-r--r--src/qt/coincontroldialog.cpp1
-rw-r--r--src/qt/forms/signverifymessagedialog.ui3
-rw-r--r--src/qt/modaloverlay.cpp6
-rw-r--r--src/qt/modaloverlay.h2
-rw-r--r--src/qt/peertablemodel.cpp1
-rw-r--r--src/qt/signverifymessagedialog.cpp1
-rw-r--r--src/qt/splashscreen.cpp1
-rw-r--r--src/qt/test/paymentservertests.cpp1
-rw-r--r--src/qt/transactiondesc.cpp1
-rw-r--r--src/qt/walletframe.cpp1
-rw-r--r--src/qt/walletmodel.h1
-rw-r--r--src/qt/walletmodeltransaction.h1
-rw-r--r--src/random.cpp4
-rw-r--r--src/rest.cpp1
-rw-r--r--src/rpc/blockchain.cpp1
-rw-r--r--src/rpc/client.cpp1
-rw-r--r--src/rpc/misc.cpp1
-rw-r--r--src/rpc/net.cpp1
-rw-r--r--src/rpc/rawtransaction.cpp8
-rw-r--r--src/rpc/server.cpp2
-rw-r--r--src/rpc/server.h2
-rw-r--r--src/script/interpreter.h1
-rw-r--r--src/script/keyorigin.h1
-rw-r--r--src/script/sign.h1
-rw-r--r--src/script/standard.h1
-rw-r--r--src/serialize.h1
-rw-r--r--src/streams.h2
-rw-r--r--src/sync.cpp2
-rw-r--r--src/test/bip32_tests.cpp1
-rw-r--r--src/test/blockfilter_index_tests.cpp20
-rw-r--r--src/test/compress_tests.cpp1
-rw-r--r--src/test/key_properties.cpp1
-rw-r--r--src/test/policyestimator_tests.cpp1
-rw-r--r--src/test/pow_tests.cpp1
-rw-r--r--src/test/skiplist_tests.cpp1
-rw-r--r--src/test/streams_tests.cpp1
-rw-r--r--src/test/txindex_tests.cpp1
-rw-r--r--src/threadinterrupt.h1
-rw-r--r--src/torcontrol.h1
-rw-r--r--src/txdb.h1
-rw-r--r--src/txmempool.h1
-rw-r--r--src/ui_interface.h1
-rw-r--r--src/uint256.cpp1
-rw-r--r--src/uint256.h1
-rw-r--r--src/util/moneystr.cpp1
-rw-r--r--src/util/moneystr.h1
-rw-r--r--src/util/string.h1
-rw-r--r--src/util/system.cpp1
-rw-r--r--src/util/threadnames.cpp1
-rw-r--r--src/util/translation.h1
-rw-r--r--src/validation.cpp3
-rw-r--r--src/validation.h2
-rw-r--r--src/validationinterface.cpp2
-rw-r--r--src/wallet/crypter.cpp3
-rw-r--r--src/wallet/crypter.h1
-rw-r--r--src/wallet/db.h2
-rw-r--r--src/wallet/fees.cpp1
-rw-r--r--src/wallet/init.cpp1
-rw-r--r--src/wallet/ismine.cpp1
-rw-r--r--src/wallet/psbtwallet.h2
-rw-r--r--src/wallet/rpcdump.cpp1
-rw-r--r--src/wallet/rpcwallet.cpp2
-rw-r--r--src/wallet/wallet.cpp1
-rw-r--r--src/wallet/wallet.h1
-rw-r--r--src/wallet/walletdb.h3
-rw-r--r--src/wallet/wallettool.h1
-rw-r--r--src/warnings.h1
-rw-r--r--src/zmq/zmqconfig.h2
-rw-r--r--src/zmq/zmqnotificationinterface.cpp1
-rw-r--r--src/zmq/zmqnotificationinterface.h2
-rw-r--r--test/README.md17
-rw-r--r--test/functional/README.md33
133 files changed, 193 insertions, 260 deletions
diff --git a/.travis.yml b/.travis.yml
index f59c7fc7e8..7519d72e83 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -34,6 +34,13 @@ cache:
- $TRAVIS_BUILD_DIR/depends/built
- $TRAVIS_BUILD_DIR/depends/sdk-sources
- $TRAVIS_BUILD_DIR/ci/scratch/.ccache
+ # macOS
+ - $HOME/Library/Caches/Homebrew
+ - /usr/local/Homebrew
+before_cache:
+ - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew cleanup; fi
+ # Cache only .git files under "/usr/local/Homebrew" so "brew update" does not take 5min every build
+ # - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then find /usr/local/Homebrew \! -regex ".+\.git.+" -delete; fi
stages:
- lint
- test
@@ -93,7 +100,7 @@ jobs:
os: osx
# Use the earliest macOS that can build our lint dependencies:
# Xcode 8.3.3, macOS 10.12, JDK 1.8.0_112-b16
- # https://docs.travis-ci.com/user/reference/osx/#OS-X-Version
+ # https://docs.travis-ci.com/user/reference/osx/#macos-version
osx_image: xcode8.3
# TODO: if you're updating osx_image, try using "rvm:" to supply the
# version of ruby required by homebrew. Despite this "rvm:" declaration,
@@ -160,3 +167,13 @@ jobs:
name: 'macOS 10.10 [GOAL: deploy] [no functional tests]'
env: >-
FILE_ENV="./ci/test/00_setup_env_mac.sh"
+
+ - stage: test
+ name: 'macOS 10.14 native [GOAL: install] [GUI: BIP70 enabled] [no depends]'
+ os: osx
+ # Use the most recent version:
+ # Xcode 11, macOS 10.14, JDK 12.0.1
+ # https://docs.travis-ci.com/user/reference/osx/#macos-version
+ osx_image: xcode11
+ env: >-
+ FILE_ENV="./ci/test/00_setup_env_mac_functional.sh"
diff --git a/ci/test/00_setup_env_mac_functional.sh b/ci/test/00_setup_env_mac_functional.sh
new file mode 100644
index 0000000000..cf19a0962f
--- /dev/null
+++ b/ci/test/00_setup_env_mac_functional.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2019 The Bitcoin Core developers
+# Distributed under the MIT software license, see the accompanying
+# file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+export LC_ALL=C.UTF-8
+
+export HOST=x86_64-apple-darwin14
+export BREW_PACKAGES="automake berkeley-db4 libtool boost miniupnpc pkg-config protobuf qt qrencode python3 ccache zeromq"
+export PIP_PACKAGES="zmq"
+export OSX_SDK=10.11
+export RUN_CI_ON_HOST=true
+export RUN_UNIT_TESTS=true
+export RUN_FUNCTIONAL_TESTS=true
+export GOAL="install"
+export BITCOIN_CONFIG="--enable-gui --enable-bip70 --enable-reduce-exports --enable-werror"
+export NO_DEPENDS=1
diff --git a/ci/test/04_install.sh b/ci/test/04_install.sh
index 409e87ce04..1578e3c0b4 100755
--- a/ci/test/04_install.sh
+++ b/ci/test/04_install.sh
@@ -6,6 +6,32 @@
export LC_ALL=C.UTF-8
+if [ "$TRAVIS_OS_NAME" == "osx" ]; then
+ set +o errexit
+ pushd /usr/local/Homebrew || exit 1
+ git reset --hard origin/master
+ popd || exit 1
+ set -o errexit
+ ${CI_RETRY_EXE} brew update
+ # brew upgrade returns an error if any of the packages is already up to date
+ # Failure is safe to ignore, unless we really need an update.
+ brew upgrade $BREW_PACKAGES || true
+
+ # install new packages (brew install returns an error if already installed)
+ for i in $BREW_PACKAGES; do
+ if ! brew list | grep -q $i; then
+ ${CI_RETRY_EXE} brew install $i
+ fi
+ done
+
+ export PATH="/usr/local/opt/ccache/libexec:$PATH"
+ OPENSSL_PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"
+ export PKG_CONFIG_PATH=$OPENSSL_PKG_CONFIG_PATH:$PKG_CONFIG_PATH
+
+ ${CI_RETRY_EXE} pip3 install $PIP_PACKAGES
+
+fi
+
mkdir -p "${BASE_SCRATCH_DIR}"
ccache echo "Creating ccache dir if it didn't already exist"
@@ -42,11 +68,19 @@ else
}
fi
-DOCKER_EXEC free -m -h
-DOCKER_EXEC echo "Number of CPUs \(nproc\):" \$\(nproc\)
+if [ "$TRAVIS_OS_NAME" == "osx" ]; then
+ top -l 1 -s 0 | awk ' /PhysMem/ {print}'
+ echo "Number of CPUs: $(sysctl -n hw.logicalcpu)"
+else
+ DOCKER_EXEC free -m -h
+ DOCKER_EXEC echo "Number of CPUs \(nproc\):" \$\(nproc\)
+fi
-${CI_RETRY_EXE} DOCKER_EXEC apt-get update
-${CI_RETRY_EXE} DOCKER_EXEC apt-get install --no-install-recommends --no-upgrade -y $PACKAGES $DOCKER_PACKAGES
+
+if [ "$TRAVIS_OS_NAME" != "osx" ]; then
+ ${CI_RETRY_EXE} DOCKER_EXEC apt-get update
+ ${CI_RETRY_EXE} DOCKER_EXEC apt-get install --no-install-recommends --no-upgrade -y $PACKAGES $DOCKER_PACKAGES
+fi
if [ "$USE_BUSY_BOX" = "true" ]; then
echo "Setup to use BusyBox utils"
diff --git a/ci/test/05_before_script.sh b/ci/test/05_before_script.sh
index 516d3fc042..469853cc80 100755
--- a/ci/test/05_before_script.sh
+++ b/ci/test/05_before_script.sh
@@ -6,19 +6,28 @@
export LC_ALL=C.UTF-8
-DOCKER_EXEC echo \> \$HOME/.bitcoin # Make sure default datadir does not exist and is never read by creating a dummy file
+# Make sure default datadir does not exist and is never read by creating a dummy file
+if [ "$TRAVIS_OS_NAME" == "osx" ]; then
+ echo > $HOME/Library/Application\ Support/Bitcoin
+else
+ DOCKER_EXEC echo \> \$HOME/.bitcoin
+fi
-mkdir -p depends/SDKs depends/sdk-sources
+if [ "$TRAVIS_OS_NAME" != "osx" ]; then
+
+ mkdir -p depends/SDKs depends/sdk-sources
+
+ if [ -n "$OSX_SDK" ] && [ ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then
+ curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz
+ fi
+ if [ -n "$OSX_SDK" ] && [ -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then
+ tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz
+ fi
+ if [[ $HOST = *-mingw32 ]]; then
+ DOCKER_EXEC update-alternatives --set $HOST-g++ \$\(which $HOST-g++-posix\)
+ fi
+ if [ -z "$NO_DEPENDS" ]; then
+ DOCKER_EXEC CONFIG_SHELL= make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS
+ fi
-if [ -n "$OSX_SDK" ] && [ ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then
- curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz
-fi
-if [ -n "$OSX_SDK" ] && [ -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then
- tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz
-fi
-if [[ $HOST = *-mingw32 ]]; then
- DOCKER_EXEC update-alternatives --set $HOST-g++ \$\(which $HOST-g++-posix\)
-fi
-if [ -z "$NO_DEPENDS" ]; then
- DOCKER_EXEC CONFIG_SHELL= make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS
fi
diff --git a/ci/test/06_script_a.sh b/ci/test/06_script_a.sh
index eb6ade7919..c4dc22bdd8 100755
--- a/ci/test/06_script_a.sh
+++ b/ci/test/06_script_a.sh
@@ -20,7 +20,11 @@ fi
END_FOLD
mkdir -p build
+
+# Temporarily disable errexit, because Travis macOS fails without error message
+set +o errexit
cd build || (echo "could not enter build directory"; exit 1)
+set -o errexit
BEGIN_FOLD configure
DOCKER_EXEC ../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
@@ -30,7 +34,9 @@ BEGIN_FOLD distdir
DOCKER_EXEC make distdir VERSION=$HOST
END_FOLD
+set +o errexit
cd "bitcoin-$HOST" || (echo "could not enter distdir bitcoin-$HOST"; exit 1)
+set -o errexit
BEGIN_FOLD configure
DOCKER_EXEC ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
@@ -43,4 +49,6 @@ BEGIN_FOLD build
DOCKER_EXEC make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && DOCKER_EXEC make $GOAL V=1 ; false )
END_FOLD
+set +o errexit
cd ${BASE_BUILD_DIR} || (echo "could not enter travis build dir $BASE_BUILD_DIR"; exit 1)
+set -o errexit
diff --git a/ci/test/06_script_b.sh b/ci/test/06_script_b.sh
index 1a5217277a..048fe06c84 100755
--- a/ci/test/06_script_b.sh
+++ b/ci/test/06_script_b.sh
@@ -6,7 +6,10 @@
export LC_ALL=C.UTF-8
+# Temporarily disable errexit, because Travis macOS fails without error message
+set +o errexit
cd "build/bitcoin-$HOST" || (echo "could not enter distdir build/bitcoin-$HOST"; exit 1)
+set -o errexit
if [ -n "$QEMU_USER_CMD" ]; then
BEGIN_FOLD wrap-qemu
@@ -46,4 +49,6 @@ if [ "$RUN_FUZZ_TESTS" = "true" ]; then
END_FOLD
fi
+set +o errexit
cd ${BASE_BUILD_DIR} || (echo "could not enter travis build dir $BASE_BUILD_DIR"; exit 1)
+set -o errexit
diff --git a/src/arith_uint256.cpp b/src/arith_uint256.cpp
index be145a0e63..1111f27771 100644
--- a/src/arith_uint256.cpp
+++ b/src/arith_uint256.cpp
@@ -8,8 +8,6 @@
#include <uint256.h>
#include <crypto/common.h>
-#include <stdio.h>
-#include <string.h>
template <unsigned int BITS>
base_uint<BITS>::base_uint(const std::string& str)
diff --git a/src/arith_uint256.h b/src/arith_uint256.h
index bd0360087d..171135b01f 100644
--- a/src/arith_uint256.h
+++ b/src/arith_uint256.h
@@ -6,13 +6,11 @@
#ifndef BITCOIN_ARITH_UINT256_H
#define BITCOIN_ARITH_UINT256_H
-#include <assert.h>
#include <cstring>
#include <limits>
#include <stdexcept>
#include <stdint.h>
#include <string>
-#include <vector>
class uint256;
diff --git a/src/bench/base58.cpp b/src/bench/base58.cpp
index 0f4b52cf79..40a7b5e320 100644
--- a/src/bench/base58.cpp
+++ b/src/bench/base58.cpp
@@ -8,7 +8,6 @@
#include <array>
#include <vector>
-#include <string>
static void Base58Encode(benchmark::State& state)
diff --git a/src/bench/bench.h b/src/bench/bench.h
index 35eeab3393..3a8c487b9a 100644
--- a/src/bench/bench.h
+++ b/src/bench/bench.h
@@ -6,7 +6,6 @@
#define BITCOIN_BENCH_BENCH_H
#include <functional>
-#include <limits>
#include <map>
#include <string>
#include <vector>
diff --git a/src/bench/block_assemble.cpp b/src/bench/block_assemble.cpp
index fb33c09ab2..157f936a95 100644
--- a/src/bench/block_assemble.cpp
+++ b/src/bench/block_assemble.cpp
@@ -10,7 +10,6 @@
#include <validation.h>
-#include <list>
#include <vector>
static void AssembleBlock(benchmark::State& state)
diff --git a/src/bench/chacha20.cpp b/src/bench/chacha20.cpp
index 030067aca5..f1b0a9a989 100644
--- a/src/bench/chacha20.cpp
+++ b/src/bench/chacha20.cpp
@@ -2,7 +2,6 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <iostream>
#include <bench/bench.h>
#include <crypto/chacha20.h>
diff --git a/src/bench/chacha_poly_aead.cpp b/src/bench/chacha_poly_aead.cpp
index f5f7297490..a02a5315a4 100644
--- a/src/bench/chacha_poly_aead.cpp
+++ b/src/bench/chacha_poly_aead.cpp
@@ -2,7 +2,6 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <iostream>
#include <bench/bench.h>
#include <crypto/chacha_poly_aead.h>
diff --git a/src/bench/crypto_hash.cpp b/src/bench/crypto_hash.cpp
index fb2bab9dee..674753c191 100644
--- a/src/bench/crypto_hash.cpp
+++ b/src/bench/crypto_hash.cpp
@@ -2,7 +2,6 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <iostream>
#include <bench/bench.h>
#include <hash.h>
diff --git a/src/bench/duplicate_inputs.cpp b/src/bench/duplicate_inputs.cpp
index 2440341287..6cfa3750d6 100644
--- a/src/bench/duplicate_inputs.cpp
+++ b/src/bench/duplicate_inputs.cpp
@@ -4,15 +4,12 @@
#include <bench/bench.h>
#include <chainparams.h>
-#include <coins.h>
#include <consensus/merkle.h>
#include <consensus/validation.h>
#include <pow.h>
#include <txmempool.h>
#include <validation.h>
-#include <list>
-#include <vector>
static void DuplicateInputs(benchmark::State& state)
diff --git a/src/bench/lockedpool.cpp b/src/bench/lockedpool.cpp
index 0712eab4bc..0d9b123400 100644
--- a/src/bench/lockedpool.cpp
+++ b/src/bench/lockedpool.cpp
@@ -6,7 +6,6 @@
#include <support/lockedpool.h>
-#include <iostream>
#include <vector>
#define ASIZE 2048
diff --git a/src/bench/mempool_eviction.cpp b/src/bench/mempool_eviction.cpp
index ac8a182358..a2a21c673b 100644
--- a/src/bench/mempool_eviction.cpp
+++ b/src/bench/mempool_eviction.cpp
@@ -6,8 +6,6 @@
#include <policy/policy.h>
#include <txmempool.h>
-#include <list>
-#include <vector>
static void AddTx(const CTransactionRef& tx, const CAmount& nFee, CTxMemPool& pool) EXCLUSIVE_LOCKS_REQUIRED(cs_main, pool.cs)
{
diff --git a/src/bench/poly1305.cpp b/src/bench/poly1305.cpp
index 16342d0fbe..02e5fecc0d 100644
--- a/src/bench/poly1305.cpp
+++ b/src/bench/poly1305.cpp
@@ -2,7 +2,6 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <iostream>
#include <bench/bench.h>
#include <crypto/poly1305.h>
diff --git a/src/bench/rollingbloom.cpp b/src/bench/rollingbloom.cpp
index 4016530dac..cffdb388f8 100644
--- a/src/bench/rollingbloom.cpp
+++ b/src/bench/rollingbloom.cpp
@@ -2,7 +2,6 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <iostream>
#include <bench/bench.h>
#include <bloom.h>
diff --git a/src/bench/rpc_blockchain.cpp b/src/bench/rpc_blockchain.cpp
index 29e448fc43..2fc6f116a4 100644
--- a/src/bench/rpc_blockchain.cpp
+++ b/src/bench/rpc_blockchain.cpp
@@ -7,7 +7,6 @@
#include <validation.h>
#include <streams.h>
-#include <consensus/validation.h>
#include <rpc/blockchain.h>
#include <univalue.h>
diff --git a/src/bench/rpc_mempool.cpp b/src/bench/rpc_mempool.cpp
index b35a744055..bf63cccf09 100644
--- a/src/bench/rpc_mempool.cpp
+++ b/src/bench/rpc_mempool.cpp
@@ -8,8 +8,6 @@
#include <univalue.h>
-#include <list>
-#include <vector>
static void AddTx(const CTransactionRef& tx, const CAmount& fee, CTxMemPool& pool) EXCLUSIVE_LOCKS_REQUIRED(cs_main, pool.cs)
{
diff --git a/src/bitcoin-cli.cpp b/src/bitcoin-cli.cpp
index 71b40dca16..93b7a7152c 100644
--- a/src/bitcoin-cli.cpp
+++ b/src/bitcoin-cli.cpp
@@ -9,7 +9,6 @@
#include <chainparamsbase.h>
#include <clientversion.h>
-#include <fs.h>
#include <rpc/client.h>
#include <rpc/protocol.h>
#include <rpc/request.h>
diff --git a/src/bitcoin-tx.cpp b/src/bitcoin-tx.cpp
index 88219f0d0f..cabea610f3 100644
--- a/src/bitcoin-tx.cpp
+++ b/src/bitcoin-tx.cpp
@@ -11,7 +11,6 @@
#include <consensus/consensus.h>
#include <core_io.h>
#include <key_io.h>
-#include <policy/policy.h>
#include <policy/rbf.h>
#include <primitives/transaction.h>
#include <script/script.h>
diff --git a/src/bitcoin-wallet.cpp b/src/bitcoin-wallet.cpp
index eb7f0098ec..eda4f8ce78 100644
--- a/src/bitcoin-wallet.cpp
+++ b/src/bitcoin-wallet.cpp
@@ -9,13 +9,11 @@
#include <chainparams.h>
#include <chainparamsbase.h>
#include <logging.h>
-#include <util/strencodings.h>
#include <util/system.h>
#include <util/translation.h>
#include <wallet/wallettool.h>
#include <functional>
-#include <stdio.h>
const std::function<std::string(const char*)> G_TRANSLATION_FUN = nullptr;
diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp
index 17989a4214..ddd6f8839c 100644
--- a/src/bitcoind.cpp
+++ b/src/bitcoind.cpp
@@ -10,7 +10,6 @@
#include <chainparams.h>
#include <clientversion.h>
#include <compat.h>
-#include <fs.h>
#include <init.h>
#include <interfaces/chain.h>
#include <noui.h>
diff --git a/src/blockencodings.h b/src/blockencodings.h
index 0c2b83ebcf..18a6e35f31 100644
--- a/src/blockencodings.h
+++ b/src/blockencodings.h
@@ -7,7 +7,6 @@
#include <primitives/block.h>
-#include <memory>
class CTxMemPool;
diff --git a/src/chain.h b/src/chain.h
index 1b67ebbe41..321bc95dbc 100644
--- a/src/chain.h
+++ b/src/chain.h
@@ -140,91 +140,65 @@ class CBlockIndex
{
public:
//! pointer to the hash of the block, if any. Memory is owned by this CBlockIndex
- const uint256* phashBlock;
+ const uint256* phashBlock{nullptr};
//! pointer to the index of the predecessor of this block
- CBlockIndex* pprev;
+ CBlockIndex* pprev{nullptr};
//! pointer to the index of some further predecessor of this block
- CBlockIndex* pskip;
+ CBlockIndex* pskip{nullptr};
//! height of the entry in the chain. The genesis block has height 0
- int nHeight;
+ int nHeight{0};
//! Which # file this block is stored in (blk?????.dat)
- int nFile;
+ int nFile{0};
//! Byte offset within blk?????.dat where this block's data is stored
- unsigned int nDataPos;
+ unsigned int nDataPos{0};
//! Byte offset within rev?????.dat where this block's undo data is stored
- unsigned int nUndoPos;
+ unsigned int nUndoPos{0};
//! (memory only) Total amount of work (expected number of hashes) in the chain up to and including this block
- arith_uint256 nChainWork;
+ arith_uint256 nChainWork{};
//! Number of transactions in this block.
//! Note: in a potential headers-first mode, this number cannot be relied upon
- unsigned int nTx;
+ unsigned int nTx{0};
//! (memory only) Number of transactions in the chain up to and including this block.
//! This value will be non-zero only if and only if transactions for this block and all its parents are available.
//! Change to 64-bit type when necessary; won't happen before 2030
- unsigned int nChainTx;
+ unsigned int nChainTx{0};
//! Verification status of this block. See enum BlockStatus
- uint32_t nStatus;
+ uint32_t nStatus{0};
//! block header
- int32_t nVersion;
- uint256 hashMerkleRoot;
- uint32_t nTime;
- uint32_t nBits;
- uint32_t nNonce;
+ int32_t nVersion{0};
+ uint256 hashMerkleRoot{};
+ uint32_t nTime{0};
+ uint32_t nBits{0};
+ uint32_t nNonce{0};
//! (memory only) Sequential id assigned to distinguish order in which blocks are received.
- int32_t nSequenceId;
+ int32_t nSequenceId{0};
//! (memory only) Maximum nTime in the chain up to and including this block.
- unsigned int nTimeMax;
-
- void SetNull()
- {
- phashBlock = nullptr;
- pprev = nullptr;
- pskip = nullptr;
- nHeight = 0;
- nFile = 0;
- nDataPos = 0;
- nUndoPos = 0;
- nChainWork = arith_uint256();
- nTx = 0;
- nChainTx = 0;
- nStatus = 0;
- nSequenceId = 0;
- nTimeMax = 0;
-
- nVersion = 0;
- hashMerkleRoot = uint256();
- nTime = 0;
- nBits = 0;
- nNonce = 0;
- }
+ unsigned int nTimeMax{0};
CBlockIndex()
{
- SetNull();
}
explicit CBlockIndex(const CBlockHeader& block)
+ : nVersion{block.nVersion},
+ hashMerkleRoot{block.hashMerkleRoot},
+ nTime{block.nTime},
+ nBits{block.nBits},
+ nNonce{block.nNonce}
{
- SetNull();
-
- nVersion = block.nVersion;
- hashMerkleRoot = block.hashMerkleRoot;
- nTime = block.nTime;
- nBits = block.nBits;
- nNonce = block.nNonce;
}
FlatFilePos GetBlockPos() const {
diff --git a/src/compressor.cpp b/src/compressor.cpp
index a2d9af8805..a7f45b5c1e 100644
--- a/src/compressor.cpp
+++ b/src/compressor.cpp
@@ -5,7 +5,6 @@
#include <compressor.h>
-#include <hash.h>
#include <pubkey.h>
#include <script/standard.h>
diff --git a/src/consensus/merkle.h b/src/consensus/merkle.h
index 7675877de5..f28f76bd34 100644
--- a/src/consensus/merkle.h
+++ b/src/consensus/merkle.h
@@ -5,10 +5,8 @@
#ifndef BITCOIN_CONSENSUS_MERKLE_H
#define BITCOIN_CONSENSUS_MERKLE_H
-#include <stdint.h>
#include <vector>
-#include <primitives/transaction.h>
#include <primitives/block.h>
#include <uint256.h>
diff --git a/src/consensus/params.h b/src/consensus/params.h
index 2f8c490dc4..e191fd6d26 100644
--- a/src/consensus/params.h
+++ b/src/consensus/params.h
@@ -8,8 +8,6 @@
#include <uint256.h>
#include <limits>
-#include <map>
-#include <string>
namespace Consensus {
diff --git a/src/crypto/aes.cpp b/src/crypto/aes.cpp
index b3fb927760..6ed9088434 100644
--- a/src/crypto/aes.cpp
+++ b/src/crypto/aes.cpp
@@ -4,7 +4,6 @@
#include <crypto/aes.h>
-#include <assert.h>
#include <string.h>
extern "C" {
diff --git a/src/crypto/chacha_poly_aead.cpp b/src/crypto/chacha_poly_aead.cpp
index 6a3d43deb1..0582a60c4f 100644
--- a/src/crypto/chacha_poly_aead.cpp
+++ b/src/crypto/chacha_poly_aead.cpp
@@ -4,7 +4,6 @@
#include <crypto/chacha_poly_aead.h>
-#include <crypto/common.h>
#include <crypto/poly1305.h>
#include <support/cleanse.h>
diff --git a/src/crypto/sha256.cpp b/src/crypto/sha256.cpp
index cab37e0322..3257ee7f97 100644
--- a/src/crypto/sha256.cpp
+++ b/src/crypto/sha256.cpp
@@ -7,7 +7,6 @@
#include <assert.h>
#include <string.h>
-#include <atomic>
#if defined(__x86_64__) || defined(__amd64__) || defined(__i386__)
#if defined(USE_ASM)
diff --git a/src/crypto/sha256_shani.cpp b/src/crypto/sha256_shani.cpp
index e561da42c5..7ea0c34796 100644
--- a/src/crypto/sha256_shani.cpp
+++ b/src/crypto/sha256_shani.cpp
@@ -11,7 +11,6 @@
#include <stdint.h>
#include <immintrin.h>
-#include <crypto/common.h>
namespace {
diff --git a/src/dbwrapper.h b/src/dbwrapper.h
index 416f5e8399..061c9b6bca 100644
--- a/src/dbwrapper.h
+++ b/src/dbwrapper.h
@@ -11,7 +11,6 @@
#include <streams.h>
#include <util/system.h>
#include <util/strencodings.h>
-#include <version.h>
#include <leveldb/db.h>
#include <leveldb/write_batch.h>
diff --git a/src/dummywallet.cpp b/src/dummywallet.cpp
index 126e3479f3..e5e563f3e9 100644
--- a/src/dummywallet.cpp
+++ b/src/dummywallet.cpp
@@ -2,7 +2,6 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <stdio.h>
#include <util/system.h>
#include <walletinitinterface.h>
#include <support/allocators/secure.h>
diff --git a/src/httprpc.cpp b/src/httprpc.cpp
index 306d718574..2c2f67b169 100644
--- a/src/httprpc.cpp
+++ b/src/httprpc.cpp
@@ -7,10 +7,8 @@
#include <chainparams.h>
#include <crypto/hmac_sha256.h>
#include <httpserver.h>
-#include <key_io.h>
#include <rpc/protocol.h>
#include <rpc/server.h>
-#include <sync.h>
#include <ui_interface.h>
#include <util/strencodings.h>
#include <util/system.h>
diff --git a/src/httprpc.h b/src/httprpc.h
index 2230a8ca4e..91c2ec0c9d 100644
--- a/src/httprpc.h
+++ b/src/httprpc.h
@@ -5,8 +5,6 @@
#ifndef BITCOIN_HTTPRPC_H
#define BITCOIN_HTTPRPC_H
-#include <string>
-#include <map>
/** Start HTTP RPC subsystem.
* Precondition; HTTP and RPC has been started.
diff --git a/src/httpserver.cpp b/src/httpserver.cpp
index d17667223b..8113777187 100644
--- a/src/httpserver.cpp
+++ b/src/httpserver.cpp
@@ -22,7 +22,6 @@
#include <sys/types.h>
#include <sys/stat.h>
-#include <signal.h>
#include <event2/thread.h>
#include <event2/buffer.h>
diff --git a/src/httpserver.h b/src/httpserver.h
index 7943f0094b..bc72fc8512 100644
--- a/src/httpserver.h
+++ b/src/httpserver.h
@@ -6,7 +6,6 @@
#define BITCOIN_HTTPSERVER_H
#include <string>
-#include <stdint.h>
#include <functional>
static const int DEFAULT_HTTP_THREADS=4;
diff --git a/src/index/base.h b/src/index/base.h
index 31acbed0c1..f95eeb8197 100644
--- a/src/index/base.h
+++ b/src/index/base.h
@@ -9,7 +9,6 @@
#include <primitives/block.h>
#include <primitives/transaction.h>
#include <threadinterrupt.h>
-#include <uint256.h>
#include <validationinterface.h>
class CBlockIndex;
diff --git a/src/interfaces/chain.cpp b/src/interfaces/chain.cpp
index b7cd65ff3a..b2c20573fb 100644
--- a/src/interfaces/chain.cpp
+++ b/src/interfaces/chain.cpp
@@ -18,12 +18,10 @@
#include <policy/settings.h>
#include <primitives/block.h>
#include <primitives/transaction.h>
-#include <protocol.h>
#include <rpc/protocol.h>
#include <rpc/server.h>
#include <shutdown.h>
#include <sync.h>
-#include <threadsafety.h>
#include <timedata.h>
#include <txmempool.h>
#include <ui_interface.h>
diff --git a/src/interfaces/node.cpp b/src/interfaces/node.cpp
index 3d89e17163..0b7a1534ab 100644
--- a/src/interfaces/node.cpp
+++ b/src/interfaces/node.cpp
@@ -5,7 +5,6 @@
#include <interfaces/node.h>
#include <addrdb.h>
-#include <amount.h>
#include <banman.h>
#include <chain.h>
#include <chainparams.h>
@@ -19,7 +18,6 @@
#include <netbase.h>
#include <policy/feerate.h>
#include <policy/fees.h>
-#include <policy/policy.h>
#include <policy/settings.h>
#include <primitives/block.h>
#include <rpc/server.h>
@@ -36,7 +34,6 @@
#include <config/bitcoin-config.h>
#endif
-#include <atomic>
#include <univalue.h>
class CWallet;
diff --git a/src/interfaces/wallet.cpp b/src/interfaces/wallet.cpp
index aff08bfbea..2353fe0934 100644
--- a/src/interfaces/wallet.cpp
+++ b/src/interfaces/wallet.cpp
@@ -8,7 +8,6 @@
#include <consensus/validation.h>
#include <interfaces/chain.h>
#include <interfaces/handler.h>
-#include <policy/feerate.h>
#include <policy/fees.h>
#include <primitives/transaction.h>
#include <script/standard.h>
@@ -23,7 +22,6 @@
#include <wallet/rpcwallet.h>
#include <wallet/load.h>
#include <wallet/wallet.h>
-#include <wallet/walletutil.h>
#include <memory>
#include <string>
diff --git a/src/key_io.cpp b/src/key_io.cpp
index cd41a93549..363055d6b3 100644
--- a/src/key_io.cpp
+++ b/src/key_io.cpp
@@ -6,7 +6,6 @@
#include <base58.h>
#include <bech32.h>
-#include <script/script.h>
#include <util/strencodings.h>
#include <boost/variant/apply_visitor.hpp>
diff --git a/src/miner.cpp b/src/miner.cpp
index 015645c9c6..4f51be8a08 100644
--- a/src/miner.cpp
+++ b/src/miner.cpp
@@ -17,14 +17,12 @@
#include <policy/policy.h>
#include <pow.h>
#include <primitives/transaction.h>
-#include <script/standard.h>
#include <timedata.h>
#include <util/moneystr.h>
#include <util/system.h>
#include <util/validation.h>
#include <algorithm>
-#include <queue>
#include <utility>
int64_t UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParams, const CBlockIndex* pindexPrev)
diff --git a/src/net.cpp b/src/net.cpp
index 63b7833822..c1c70facf4 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -13,11 +13,9 @@
#include <chainparams.h>
#include <clientversion.h>
#include <consensus/consensus.h>
-#include <crypto/common.h>
#include <crypto/sha256.h>
#include <netbase.h>
#include <net_permissions.h>
-#include <primitives/transaction.h>
#include <scheduler.h>
#include <ui_interface.h>
#include <util/strencodings.h>
@@ -35,7 +33,6 @@
#ifdef USE_UPNP
#include <miniupnpc/miniupnpc.h>
-#include <miniupnpc/miniwget.h>
#include <miniupnpc/upnpcommands.h>
#include <miniupnpc/upnperrors.h>
// The minimum supported miniUPnPc API version is set to 10. This keeps compatibility
diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index b6839dcf21..43de12649e 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -7,7 +7,6 @@
#include <addrman.h>
#include <banman.h>
-#include <arith_uint256.h>
#include <blockencodings.h>
#include <chainparams.h>
#include <consensus/validation.h>
diff --git a/src/netaddress.h b/src/netaddress.h
index 673eaf8d7b..fbb1553338 100644
--- a/src/netaddress.h
+++ b/src/netaddress.h
@@ -11,7 +11,6 @@
#include <compat.h>
#include <serialize.h>
-#include <span.h>
#include <stdint.h>
#include <string>
diff --git a/src/node/coinstats.cpp b/src/node/coinstats.cpp
index e1891b9898..57fa158ad2 100644
--- a/src/node/coinstats.cpp
+++ b/src/node/coinstats.cpp
@@ -5,9 +5,7 @@
#include <node/coinstats.h>
-#include <amount.h>
#include <coins.h>
-#include <chain.h>
#include <hash.h>
#include <serialize.h>
#include <validation.h>
diff --git a/src/node/transaction.cpp b/src/node/transaction.cpp
index 7e8291ddc8..7783671a6c 100644
--- a/src/node/transaction.cpp
+++ b/src/node/transaction.cpp
@@ -6,7 +6,6 @@
#include <consensus/validation.h>
#include <net.h>
#include <net_processing.h>
-#include <txmempool.h>
#include <util/validation.h>
#include <validation.h>
#include <validationinterface.h>
diff --git a/src/node/transaction.h b/src/node/transaction.h
index cf64fc28d9..a3e56544a7 100644
--- a/src/node/transaction.h
+++ b/src/node/transaction.h
@@ -7,7 +7,6 @@
#include <attributes.h>
#include <primitives/transaction.h>
-#include <uint256.h>
#include <util/error.h>
/**
diff --git a/src/noui.cpp b/src/noui.cpp
index c07939cc79..14d6183d24 100644
--- a/src/noui.cpp
+++ b/src/noui.cpp
@@ -8,8 +8,6 @@
#include <ui_interface.h>
#include <util/system.h>
-#include <cstdio>
-#include <stdint.h>
#include <string>
#include <boost/signals2/connection.hpp>
diff --git a/src/policy/fees.cpp b/src/policy/fees.cpp
index 5d538606c2..8154bf105e 100644
--- a/src/policy/fees.cpp
+++ b/src/policy/fees.cpp
@@ -6,7 +6,6 @@
#include <policy/fees.h>
#include <clientversion.h>
-#include <primitives/transaction.h>
#include <streams.h>
#include <txmempool.h>
#include <util/system.h>
diff --git a/src/prevector.h b/src/prevector.h
index 9d576321b6..d307495fbe 100644
--- a/src/prevector.h
+++ b/src/prevector.h
@@ -12,7 +12,6 @@
#include <algorithm>
#include <cstddef>
-#include <iterator>
#include <type_traits>
#pragma pack(push, 1)
diff --git a/src/primitives/block.cpp b/src/primitives/block.cpp
index 60c7c2d160..0c84ed6da2 100644
--- a/src/primitives/block.cpp
+++ b/src/primitives/block.cpp
@@ -7,7 +7,6 @@
#include <hash.h>
#include <tinyformat.h>
-#include <crypto/common.h>
uint256 CBlockHeader::GetHash() const
{
diff --git a/src/protocol.h b/src/protocol.h
index e6b25ffa25..3032310fa1 100644
--- a/src/protocol.h
+++ b/src/protocol.h
@@ -15,7 +15,6 @@
#include <uint256.h>
#include <version.h>
-#include <atomic>
#include <stdint.h>
#include <string>
diff --git a/src/psbt.cpp b/src/psbt.cpp
index fe74002e82..c306079b1e 100644
--- a/src/psbt.cpp
+++ b/src/psbt.cpp
@@ -5,7 +5,6 @@
#include <psbt.h>
#include <util/strencodings.h>
-#include <numeric>
PartiallySignedTransaction::PartiallySignedTransaction(const CMutableTransaction& tx) : tx(tx)
{
diff --git a/src/qt/bantablemodel.cpp b/src/qt/bantablemodel.cpp
index efc726e09e..ae11b80347 100644
--- a/src/qt/bantablemodel.cpp
+++ b/src/qt/bantablemodel.cpp
@@ -7,8 +7,6 @@
#include <qt/clientmodel.h>
#include <interfaces/node.h>
-#include <sync.h>
-#include <util/time.h>
#include <algorithm>
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp
index 86f4dc91a1..f548dc9fe3 100644
--- a/src/qt/bitcoin.cpp
+++ b/src/qt/bitcoin.cpp
@@ -10,7 +10,6 @@
#include <qt/bitcoingui.h>
#include <chainparams.h>
-#include <fs.h>
#include <qt/clientmodel.h>
#include <qt/guiconstants.h>
#include <qt/guiutil.h>
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 2cfcf346fa..b280a0c14f 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -199,12 +199,12 @@ BitcoinGUI::BitcoinGUI(interfaces::Node& node, const PlatformStyle *_platformSty
openOptionsDialogWithTab(OptionsDialog::TAB_NETWORK);
});
- modalOverlay = new ModalOverlay(this->centralWidget());
+ modalOverlay = new ModalOverlay(enableWallet, this->centralWidget());
+ connect(labelBlocksIcon, &GUIUtil::ClickableLabel::clicked, this, &BitcoinGUI::showModalOverlay);
+ connect(progressBar, &GUIUtil::ClickableProgressBar::clicked, this, &BitcoinGUI::showModalOverlay);
#ifdef ENABLE_WALLET
if(enableWallet) {
connect(walletFrame, &WalletFrame::requestedSyncWarningInfo, this, &BitcoinGUI::showModalOverlay);
- connect(labelBlocksIcon, &GUIUtil::ClickableLabel::clicked, this, &BitcoinGUI::showModalOverlay);
- connect(progressBar, &GUIUtil::ClickableProgressBar::clicked, this, &BitcoinGUI::showModalOverlay);
}
#endif
diff --git a/src/qt/coincontroldialog.cpp b/src/qt/coincontroldialog.cpp
index 03d18d2845..f928f1ca2a 100644
--- a/src/qt/coincontroldialog.cpp
+++ b/src/qt/coincontroldialog.cpp
@@ -19,7 +19,6 @@
#include <wallet/coincontrol.h>
#include <interfaces/node.h>
#include <key_io.h>
-#include <policy/fees.h>
#include <policy/policy.h>
#include <wallet/wallet.h>
diff --git a/src/qt/forms/signverifymessagedialog.ui b/src/qt/forms/signverifymessagedialog.ui
index 8a7bdfdbc6..202edf27d4 100644
--- a/src/qt/forms/signverifymessagedialog.ui
+++ b/src/qt/forms/signverifymessagedialog.ui
@@ -99,6 +99,9 @@
<property name="toolTip">
<string>Enter the message you want to sign here</string>
</property>
+ <property name="placeholderText">
+ <string>Enter the message you want to sign here</string>
+ </property>
</widget>
</item>
<item>
diff --git a/src/qt/modaloverlay.cpp b/src/qt/modaloverlay.cpp
index 8ecc33da84..efdd494d9f 100644
--- a/src/qt/modaloverlay.cpp
+++ b/src/qt/modaloverlay.cpp
@@ -12,7 +12,7 @@
#include <QResizeEvent>
#include <QPropertyAnimation>
-ModalOverlay::ModalOverlay(QWidget *parent) :
+ModalOverlay::ModalOverlay(bool enable_wallet, QWidget *parent) :
QWidget(parent),
ui(new Ui::ModalOverlay),
bestHeaderHeight(0),
@@ -29,6 +29,10 @@ userClosed(false)
blockProcessTime.clear();
setVisible(false);
+ if (!enable_wallet) {
+ ui->infoText->setVisible(false);
+ ui->infoTextStrong->setText(tr("Bitcoin Core is currently syncing. It will download headers and blocks from peers and validate them until reaching the tip of the block chain."));
+ }
}
ModalOverlay::~ModalOverlay()
diff --git a/src/qt/modaloverlay.h b/src/qt/modaloverlay.h
index cf8b53f2b3..c075a89f94 100644
--- a/src/qt/modaloverlay.h
+++ b/src/qt/modaloverlay.h
@@ -21,7 +21,7 @@ class ModalOverlay : public QWidget
Q_OBJECT
public:
- explicit ModalOverlay(QWidget *parent);
+ explicit ModalOverlay(bool enable_wallet, QWidget *parent);
~ModalOverlay();
public Q_SLOTS:
diff --git a/src/qt/peertablemodel.cpp b/src/qt/peertablemodel.cpp
index 99a9a12fe2..af2a1bb0e5 100644
--- a/src/qt/peertablemodel.cpp
+++ b/src/qt/peertablemodel.cpp
@@ -9,7 +9,6 @@
#include <qt/guiutil.h>
#include <interfaces/node.h>
-#include <sync.h>
#include <algorithm>
diff --git a/src/qt/signverifymessagedialog.cpp b/src/qt/signverifymessagedialog.cpp
index 71f5f2ae75..1d0e1323bc 100644
--- a/src/qt/signverifymessagedialog.cpp
+++ b/src/qt/signverifymessagedialog.cpp
@@ -14,7 +14,6 @@
#include <util/validation.h> // For strMessageMagic
#include <wallet/wallet.h>
-#include <string>
#include <vector>
#include <QClipboard>
diff --git a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp
index 0e5abb89f3..26c9fe7ad4 100644
--- a/src/qt/splashscreen.cpp
+++ b/src/qt/splashscreen.cpp
@@ -17,7 +17,6 @@
#include <ui_interface.h>
#include <util/system.h>
#include <util/translation.h>
-#include <version.h>
#include <QApplication>
#include <QCloseEvent>
diff --git a/src/qt/test/paymentservertests.cpp b/src/qt/test/paymentservertests.cpp
index eca468a6ab..ef0808054d 100644
--- a/src/qt/test/paymentservertests.cpp
+++ b/src/qt/test/paymentservertests.cpp
@@ -8,7 +8,6 @@
#include <qt/test/paymentrequestdata.h>
#include <amount.h>
-#include <chainparams.h>
#include <interfaces/node.h>
#include <random.h>
#include <script/script.h>
diff --git a/src/qt/transactiondesc.cpp b/src/qt/transactiondesc.cpp
index 648fdb7673..44ce5265cd 100644
--- a/src/qt/transactiondesc.cpp
+++ b/src/qt/transactiondesc.cpp
@@ -18,7 +18,6 @@
#include <key_io.h>
#include <validation.h>
#include <script/script.h>
-#include <timedata.h>
#include <util/system.h>
#include <policy/policy.h>
#include <wallet/ismine.h>
diff --git a/src/qt/walletframe.cpp b/src/qt/walletframe.cpp
index 94413547d4..d7f0617315 100644
--- a/src/qt/walletframe.cpp
+++ b/src/qt/walletframe.cpp
@@ -9,7 +9,6 @@
#include <qt/walletview.h>
#include <cassert>
-#include <cstdio>
#include <QHBoxLayout>
#include <QLabel>
diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h
index 54428aec08..f16fe81bd9 100644
--- a/src/qt/walletmodel.h
+++ b/src/qt/walletmodel.h
@@ -22,7 +22,6 @@
#include <interfaces/wallet.h>
#include <support/allocators/secure.h>
-#include <map>
#include <vector>
#include <QObject>
diff --git a/src/qt/walletmodeltransaction.h b/src/qt/walletmodeltransaction.h
index a41d8f2457..242ba13897 100644
--- a/src/qt/walletmodeltransaction.h
+++ b/src/qt/walletmodeltransaction.h
@@ -7,7 +7,6 @@
#include <qt/walletmodel.h>
-#include <memory>
#include <amount.h>
#include <QObject>
diff --git a/src/random.cpp b/src/random.cpp
index 675b177af3..0f13228383 100644
--- a/src/random.cpp
+++ b/src/random.cpp
@@ -16,7 +16,6 @@
#include <util/time.h> // for GetTime()
#include <stdlib.h>
-#include <chrono>
#include <thread>
#include <support/allocators/secure.h>
@@ -41,7 +40,6 @@
#include <sys/sysctl.h>
#endif
-#include <mutex>
#if defined(__x86_64__) || defined(__amd64__) || defined(__i386__)
#include <cpuid.h>
@@ -113,7 +111,7 @@ static void InitHardwareRand()
static void ReportHardwareRand()
{
- // This must be done in a separate function, as HWRandInit() may be indirectly called
+ // This must be done in a separate function, as InitHardwareRand() may be indirectly called
// from global constructors, before logging is initialized.
if (g_rdseed_supported) {
LogPrintf("Using RdSeed as additional entropy source\n");
diff --git a/src/rest.cpp b/src/rest.cpp
index 2c4d475542..228c122de3 100644
--- a/src/rest.cpp
+++ b/src/rest.cpp
@@ -3,7 +3,6 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <attributes.h>
#include <chain.h>
#include <chainparams.h>
#include <core_io.h>
diff --git a/src/rpc/blockchain.cpp b/src/rpc/blockchain.cpp
index 3463145f75..4bbd4aaf64 100644
--- a/src/rpc/blockchain.cpp
+++ b/src/rpc/blockchain.cpp
@@ -32,7 +32,6 @@
#include <util/validation.h>
#include <validation.h>
#include <validationinterface.h>
-#include <versionbitsinfo.h>
#include <warnings.h>
#include <assert.h>
diff --git a/src/rpc/client.cpp b/src/rpc/client.cpp
index c2714f9c83..32e18312e1 100644
--- a/src/rpc/client.cpp
+++ b/src/rpc/client.cpp
@@ -4,7 +4,6 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <rpc/client.h>
-#include <rpc/protocol.h>
#include <util/system.h>
#include <set>
diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp
index 1516007201..d289274a37 100644
--- a/src/rpc/misc.cpp
+++ b/src/rpc/misc.cpp
@@ -3,7 +3,6 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <crypto/ripemd160.h>
#include <key_io.h>
#include <httpserver.h>
#include <outputtype.h>
diff --git a/src/rpc/net.cpp b/src/rpc/net.cpp
index 7c4b3d0cc6..7b1507e4dc 100644
--- a/src/rpc/net.cpp
+++ b/src/rpc/net.cpp
@@ -11,7 +11,6 @@
#include <net_processing.h>
#include <net_permissions.h>
#include <netbase.h>
-#include <policy/policy.h>
#include <policy/settings.h>
#include <rpc/protocol.h>
#include <rpc/util.h>
diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp
index f548d356cf..a16e5cb61a 100644
--- a/src/rpc/rawtransaction.cpp
+++ b/src/rpc/rawtransaction.cpp
@@ -5,7 +5,6 @@
#include <chain.h>
#include <coins.h>
-#include <compat/byteswap.h>
#include <consensus/validation.h>
#include <core_io.h>
#include <index/txindex.h>
@@ -23,7 +22,6 @@
#include <rpc/server.h>
#include <rpc/util.h>
#include <script/script.h>
-#include <script/script_error.h>
#include <script/sign.h>
#include <script/signingprovider.h>
#include <script/standard.h>
@@ -610,7 +608,7 @@ static UniValue combinerawtransaction(const JSONRPCRequest& request)
"\"hex\" (string) The hex-encoded raw transaction with signature(s)\n"
},
RPCExamples{
- HelpExampleCli("combinerawtransaction", "[\"myhex1\", \"myhex2\", \"myhex3\"]")
+ HelpExampleCli("combinerawtransaction", R"('["myhex1", "myhex2", "myhex3"]')")
},
}.Check(request);
@@ -858,7 +856,7 @@ static UniValue testmempoolaccept(const JSONRPCRequest& request)
"Sign the transaction, and get back the hex\n"
+ HelpExampleCli("signrawtransactionwithwallet", "\"myhex\"") +
"\nTest acceptance of the transaction (signed hex)\n"
- + HelpExampleCli("testmempoolaccept", "[\"signedhex\"]") +
+ + HelpExampleCli("testmempoolaccept", R"('["signedhex"]')") +
"\nAs a JSON-RPC call\n"
+ HelpExampleRpc("testmempoolaccept", "[\"signedhex\"]")
},
@@ -1226,7 +1224,7 @@ UniValue combinepsbt(const JSONRPCRequest& request)
" \"psbt\" (string) The base64-encoded partially signed transaction\n"
},
RPCExamples{
- HelpExampleCli("combinepsbt", "[\"mybase64_1\", \"mybase64_2\", \"mybase64_3\"]")
+ HelpExampleCli("combinepsbt", R"('["mybase64_1", "mybase64_2", "mybase64_3"]')")
},
}.Check(request);
diff --git a/src/rpc/server.cpp b/src/rpc/server.cpp
index 3e5bb85c1c..91d3e1fca4 100644
--- a/src/rpc/server.cpp
+++ b/src/rpc/server.cpp
@@ -5,8 +5,6 @@
#include <rpc/server.h>
-#include <fs.h>
-#include <key_io.h>
#include <rpc/util.h>
#include <shutdown.h>
#include <sync.h>
diff --git a/src/rpc/server.h b/src/rpc/server.h
index b060db5bf9..be9c03bf6b 100644
--- a/src/rpc/server.h
+++ b/src/rpc/server.h
@@ -8,9 +8,7 @@
#include <amount.h>
#include <rpc/request.h>
-#include <uint256.h>
-#include <list>
#include <map>
#include <stdint.h>
#include <string>
diff --git a/src/script/interpreter.h b/src/script/interpreter.h
index 276ff9a58a..d63d8b85b7 100644
--- a/src/script/interpreter.h
+++ b/src/script/interpreter.h
@@ -11,7 +11,6 @@
#include <vector>
#include <stdint.h>
-#include <string>
class CPubKey;
class CScript;
diff --git a/src/script/keyorigin.h b/src/script/keyorigin.h
index 610f233500..467605ce46 100644
--- a/src/script/keyorigin.h
+++ b/src/script/keyorigin.h
@@ -6,7 +6,6 @@
#define BITCOIN_SCRIPT_KEYORIGIN_H
#include <serialize.h>
-#include <streams.h>
#include <vector>
struct KeyOriginInfo
diff --git a/src/script/sign.h b/src/script/sign.h
index 0e751afd3b..9d0a5b4d70 100644
--- a/src/script/sign.h
+++ b/src/script/sign.h
@@ -6,7 +6,6 @@
#ifndef BITCOIN_SCRIPT_SIGN_H
#define BITCOIN_SCRIPT_SIGN_H
-#include <boost/optional.hpp>
#include <hash.h>
#include <pubkey.h>
#include <script/interpreter.h>
diff --git a/src/script/standard.h b/src/script/standard.h
index e45e2d92cc..6db28dbc2d 100644
--- a/src/script/standard.h
+++ b/src/script/standard.h
@@ -11,7 +11,6 @@
#include <boost/variant.hpp>
-#include <stdint.h>
static const bool DEFAULT_ACCEPT_DATACARRIER = true;
diff --git a/src/serialize.h b/src/serialize.h
index a38d76fc18..ef270dbbe3 100644
--- a/src/serialize.h
+++ b/src/serialize.h
@@ -9,7 +9,6 @@
#include <compat/endian.h>
#include <algorithm>
-#include <assert.h>
#include <ios>
#include <limits>
#include <map>
diff --git a/src/streams.h b/src/streams.h
index 517eefc932..b598dc1aeb 100644
--- a/src/streams.h
+++ b/src/streams.h
@@ -13,8 +13,6 @@
#include <assert.h>
#include <ios>
#include <limits>
-#include <map>
-#include <set>
#include <stdint.h>
#include <stdio.h>
#include <string>
diff --git a/src/sync.cpp b/src/sync.cpp
index 20258d8e9a..653800ae4e 100644
--- a/src/sync.cpp
+++ b/src/sync.cpp
@@ -13,10 +13,8 @@
#include <util/strencodings.h>
#include <util/threadnames.h>
-#include <stdio.h>
#include <map>
-#include <memory>
#include <set>
#ifdef DEBUG_LOCKCONTENTION
diff --git a/src/test/bip32_tests.cpp b/src/test/bip32_tests.cpp
index 662878750e..660df00964 100644
--- a/src/test/bip32_tests.cpp
+++ b/src/test/bip32_tests.cpp
@@ -8,7 +8,6 @@
#include <key.h>
#include <key_io.h>
#include <streams.h>
-#include <util/system.h>
#include <util/strencodings.h>
#include <test/setup_common.h>
diff --git a/src/test/blockfilter_index_tests.cpp b/src/test/blockfilter_index_tests.cpp
index cf87aa9303..ba293b7836 100644
--- a/src/test/blockfilter_index_tests.cpp
+++ b/src/test/blockfilter_index_tests.cpp
@@ -167,17 +167,23 @@ BOOST_FIXTURE_TEST_CASE(blockfilter_index_initial_sync, TestChain100Setup)
LOCK(cs_main);
tip = ::ChainActive().Tip();
}
- CScript coinbase_script_pub_key = GetScriptForDestination(PKHash(coinbaseKey.GetPubKey()));
+ CKey coinbase_key_A, coinbase_key_B;
+ coinbase_key_A.MakeNewKey(true);
+ coinbase_key_B.MakeNewKey(true);
+ CScript coinbase_script_pub_key_A = GetScriptForDestination(PKHash(coinbase_key_A.GetPubKey()));
+ CScript coinbase_script_pub_key_B = GetScriptForDestination(PKHash(coinbase_key_B.GetPubKey()));
std::vector<std::shared_ptr<CBlock>> chainA, chainB;
- BOOST_REQUIRE(BuildChain(tip, coinbase_script_pub_key, 10, chainA));
- BOOST_REQUIRE(BuildChain(tip, coinbase_script_pub_key, 10, chainB));
+ BOOST_REQUIRE(BuildChain(tip, coinbase_script_pub_key_A, 10, chainA));
+ BOOST_REQUIRE(BuildChain(tip, coinbase_script_pub_key_B, 10, chainB));
// Check that new blocks on chain A get indexed.
uint256 chainA_last_header = last_header;
for (size_t i = 0; i < 2; i++) {
const auto& block = chainA[i];
BOOST_REQUIRE(ProcessNewBlock(Params(), block, true, nullptr));
-
+ }
+ for (size_t i = 0; i < 2; i++) {
+ const auto& block = chainA[i];
const CBlockIndex* block_index;
{
LOCK(cs_main);
@@ -193,7 +199,9 @@ BOOST_FIXTURE_TEST_CASE(blockfilter_index_initial_sync, TestChain100Setup)
for (size_t i = 0; i < 3; i++) {
const auto& block = chainB[i];
BOOST_REQUIRE(ProcessNewBlock(Params(), block, true, nullptr));
-
+ }
+ for (size_t i = 0; i < 3; i++) {
+ const auto& block = chainB[i];
const CBlockIndex* block_index;
{
LOCK(cs_main);
@@ -221,7 +229,7 @@ BOOST_FIXTURE_TEST_CASE(blockfilter_index_initial_sync, TestChain100Setup)
// Reorg back to chain A.
for (size_t i = 2; i < 4; i++) {
const auto& block = chainA[i];
- BOOST_REQUIRE(ProcessNewBlock(Params(), block, true, nullptr));
+ BOOST_REQUIRE(ProcessNewBlock(Params(), block, true, nullptr));
}
// Check that chain A and B blocks can be retrieved.
diff --git a/src/test/compress_tests.cpp b/src/test/compress_tests.cpp
index 6cef8cd8a8..e8f149470e 100644
--- a/src/test/compress_tests.cpp
+++ b/src/test/compress_tests.cpp
@@ -3,7 +3,6 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <compressor.h>
-#include <util/system.h>
#include <test/setup_common.h>
#include <stdint.h>
diff --git a/src/test/key_properties.cpp b/src/test/key_properties.cpp
index abcfc4547b..95587130fc 100644
--- a/src/test/key_properties.cpp
+++ b/src/test/key_properties.cpp
@@ -4,7 +4,6 @@
#include <key.h>
#include <uint256.h>
-#include <util/system.h>
#include <test/setup_common.h>
#include <vector>
diff --git a/src/test/policyestimator_tests.cpp b/src/test/policyestimator_tests.cpp
index 016a4f471b..5368f82ffe 100644
--- a/src/test/policyestimator_tests.cpp
+++ b/src/test/policyestimator_tests.cpp
@@ -6,7 +6,6 @@
#include <policy/fees.h>
#include <txmempool.h>
#include <uint256.h>
-#include <util/system.h>
#include <util/time.h>
#include <test/setup_common.h>
diff --git a/src/test/pow_tests.cpp b/src/test/pow_tests.cpp
index deac349867..6c99021d97 100644
--- a/src/test/pow_tests.cpp
+++ b/src/test/pow_tests.cpp
@@ -5,7 +5,6 @@
#include <chain.h>
#include <chainparams.h>
#include <pow.h>
-#include <util/system.h>
#include <test/setup_common.h>
#include <boost/test/unit_test.hpp>
diff --git a/src/test/skiplist_tests.cpp b/src/test/skiplist_tests.cpp
index 3d39dfdb75..1cba3a1297 100644
--- a/src/test/skiplist_tests.cpp
+++ b/src/test/skiplist_tests.cpp
@@ -3,7 +3,6 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <chain.h>
-#include <util/system.h>
#include <test/setup_common.h>
#include <vector>
diff --git a/src/test/streams_tests.cpp b/src/test/streams_tests.cpp
index 638819d564..6075fbfeca 100644
--- a/src/test/streams_tests.cpp
+++ b/src/test/streams_tests.cpp
@@ -2,7 +2,6 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <random.h>
#include <streams.h>
#include <test/setup_common.h>
diff --git a/src/test/txindex_tests.cpp b/src/test/txindex_tests.cpp
index d794d09d30..0ac4b7ebc9 100644
--- a/src/test/txindex_tests.cpp
+++ b/src/test/txindex_tests.cpp
@@ -6,7 +6,6 @@
#include <index/txindex.h>
#include <script/standard.h>
#include <test/setup_common.h>
-#include <util/system.h>
#include <util/time.h>
#include <boost/test/unit_test.hpp>
diff --git a/src/threadinterrupt.h b/src/threadinterrupt.h
index 2743571379..0654c2ab1f 100644
--- a/src/threadinterrupt.h
+++ b/src/threadinterrupt.h
@@ -10,7 +10,6 @@
#include <atomic>
#include <chrono>
#include <condition_variable>
-#include <mutex>
/*
A helper class for interruptible sleeps. Calling operator() will interrupt
diff --git a/src/torcontrol.h b/src/torcontrol.h
index 079146b540..e1a1a7937a 100644
--- a/src/torcontrol.h
+++ b/src/torcontrol.h
@@ -8,7 +8,6 @@
#ifndef BITCOIN_TORCONTROL_H
#define BITCOIN_TORCONTROL_H
-#include <scheduler.h>
extern const std::string DEFAULT_TOR_CONTROL;
static const bool DEFAULT_LISTEN_ONION = true;
diff --git a/src/txdb.h b/src/txdb.h
index 140ce2c7ff..05bf4e4453 100644
--- a/src/txdb.h
+++ b/src/txdb.h
@@ -11,7 +11,6 @@
#include <chain.h>
#include <primitives/block.h>
-#include <map>
#include <memory>
#include <string>
#include <utility>
diff --git a/src/txmempool.h b/src/txmempool.h
index 229a923a28..b51e800001 100644
--- a/src/txmempool.h
+++ b/src/txmempool.h
@@ -8,7 +8,6 @@
#include <atomic>
#include <map>
-#include <memory>
#include <set>
#include <string>
#include <utility>
diff --git a/src/ui_interface.h b/src/ui_interface.h
index 5e0380dc45..9efc2db391 100644
--- a/src/ui_interface.h
+++ b/src/ui_interface.h
@@ -8,7 +8,6 @@
#include <functional>
#include <memory>
-#include <stdint.h>
#include <string>
class CBlockIndex;
diff --git a/src/uint256.cpp b/src/uint256.cpp
index ea7164c1f0..ee597e1877 100644
--- a/src/uint256.cpp
+++ b/src/uint256.cpp
@@ -7,7 +7,6 @@
#include <util/strencodings.h>
-#include <stdio.h>
#include <string.h>
template <unsigned int BITS>
diff --git a/src/uint256.h b/src/uint256.h
index 97e0cfa015..60c5e0554c 100644
--- a/src/uint256.h
+++ b/src/uint256.h
@@ -8,7 +8,6 @@
#include <assert.h>
#include <cstring>
-#include <stdexcept>
#include <stdint.h>
#include <string>
#include <vector>
diff --git a/src/util/moneystr.cpp b/src/util/moneystr.cpp
index f4e41eea4f..ba5a12e58c 100644
--- a/src/util/moneystr.cpp
+++ b/src/util/moneystr.cpp
@@ -5,7 +5,6 @@
#include <util/moneystr.h>
-#include <primitives/transaction.h>
#include <tinyformat.h>
#include <util/strencodings.h>
diff --git a/src/util/moneystr.h b/src/util/moneystr.h
index b8e2812a96..4d0218911a 100644
--- a/src/util/moneystr.h
+++ b/src/util/moneystr.h
@@ -12,7 +12,6 @@
#include <amount.h>
#include <attributes.h>
-#include <cstdint>
#include <string>
/* Do not use these functions to represent or parse monetary amounts to or from
diff --git a/src/util/string.h b/src/util/string.h
index dec0c19b08..76a83a4949 100644
--- a/src/util/string.h
+++ b/src/util/string.h
@@ -5,7 +5,6 @@
#ifndef BITCOIN_UTIL_STRING_H
#define BITCOIN_UTIL_STRING_H
-#include <functional>
#include <string>
#include <vector>
diff --git a/src/util/system.cpp b/src/util/system.cpp
index f22256615f..6199e5daad 100644
--- a/src/util/system.cpp
+++ b/src/util/system.cpp
@@ -9,7 +9,6 @@
#include <util/strencodings.h>
#include <util/translation.h>
-#include <stdarg.h>
#if (defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__))
#include <pthread.h>
diff --git a/src/util/threadnames.cpp b/src/util/threadnames.cpp
index 168f9325d0..20df403a66 100644
--- a/src/util/threadnames.cpp
+++ b/src/util/threadnames.cpp
@@ -6,7 +6,6 @@
#include <config/bitcoin-config.h>
#endif
-#include <atomic>
#include <thread>
#if (defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__DragonFly__))
diff --git a/src/util/translation.h b/src/util/translation.h
index f100dab20d..0e6eb5a094 100644
--- a/src/util/translation.h
+++ b/src/util/translation.h
@@ -7,7 +7,6 @@
#include <tinyformat.h>
-#include <utility>
/**
* Bilingual messages:
diff --git a/src/validation.cpp b/src/validation.cpp
index 726f251c5a..7db1ade315 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -28,7 +28,6 @@
#include <reverse_iterator.h>
#include <script/script.h>
#include <script/sigcache.h>
-#include <script/standard.h>
#include <shutdown.h>
#include <timedata.h>
#include <tinyformat.h>
@@ -46,8 +45,6 @@
#include <validationinterface.h>
#include <warnings.h>
-#include <future>
-#include <sstream>
#include <string>
#include <boost/algorithm/string/replace.hpp>
diff --git a/src/validation.h b/src/validation.h
index fbbe3757e0..9140bf16e1 100644
--- a/src/validation.h
+++ b/src/validation.h
@@ -24,12 +24,10 @@
#include <algorithm>
#include <atomic>
-#include <exception>
#include <map>
#include <memory>
#include <set>
#include <stdint.h>
-#include <string>
#include <utility>
#include <vector>
diff --git a/src/validationinterface.cpp b/src/validationinterface.cpp
index 59a620ab95..cf4a529a6d 100644
--- a/src/validationinterface.cpp
+++ b/src/validationinterface.cpp
@@ -9,8 +9,6 @@
#include <scheduler.h>
#include <txmempool.h>
-#include <list>
-#include <atomic>
#include <future>
#include <utility>
diff --git a/src/wallet/crypter.cpp b/src/wallet/crypter.cpp
index 0b76c1a0eb..f6179aa298 100644
--- a/src/wallet/crypter.cpp
+++ b/src/wallet/crypter.cpp
@@ -6,11 +6,8 @@
#include <crypto/aes.h>
#include <crypto/sha512.h>
-#include <script/script.h>
-#include <script/standard.h>
#include <util/system.h>
-#include <string>
#include <vector>
int CCrypter::BytesToKeySHA512AES(const std::vector<unsigned char>& chSalt, const SecureString& strKeyData, int count, unsigned char *key,unsigned char *iv) const
diff --git a/src/wallet/crypter.h b/src/wallet/crypter.h
index 17a4e9820c..4367a5047f 100644
--- a/src/wallet/crypter.h
+++ b/src/wallet/crypter.h
@@ -9,7 +9,6 @@
#include <support/allocators/secure.h>
#include <script/signingprovider.h>
-#include <atomic>
const unsigned int WALLET_CRYPTO_KEY_SIZE = 32;
const unsigned int WALLET_CRYPTO_SALT_SIZE = 8;
diff --git a/src/wallet/db.h b/src/wallet/db.h
index 94f41eaf16..d9d2070cfc 100644
--- a/src/wallet/db.h
+++ b/src/wallet/db.h
@@ -10,9 +10,7 @@
#include <fs.h>
#include <serialize.h>
#include <streams.h>
-#include <sync.h>
#include <util/system.h>
-#include <version.h>
#include <atomic>
#include <map>
diff --git a/src/wallet/fees.cpp b/src/wallet/fees.cpp
index 2792058f2a..249bc833c6 100644
--- a/src/wallet/fees.cpp
+++ b/src/wallet/fees.cpp
@@ -5,7 +5,6 @@
#include <wallet/fees.h>
-#include <util/system.h>
#include <wallet/coincontrol.h>
#include <wallet/wallet.h>
diff --git a/src/wallet/init.cpp b/src/wallet/init.cpp
index b7f3f2e5fe..3657a157b6 100644
--- a/src/wallet/init.cpp
+++ b/src/wallet/init.cpp
@@ -11,7 +11,6 @@
#include <util/system.h>
#include <util/translation.h>
#include <wallet/wallet.h>
-#include <wallet/walletutil.h>
#include <walletinitinterface.h>
class WalletInit : public WalletInitInterface {
diff --git a/src/wallet/ismine.cpp b/src/wallet/ismine.cpp
index b7ef2d4490..029b922785 100644
--- a/src/wallet/ismine.cpp
+++ b/src/wallet/ismine.cpp
@@ -7,7 +7,6 @@
#include <key.h>
#include <script/script.h>
-#include <script/sign.h>
#include <script/signingprovider.h>
#include <wallet/wallet.h>
diff --git a/src/wallet/psbtwallet.h b/src/wallet/psbtwallet.h
index a24a0967d2..a7e52df6d9 100644
--- a/src/wallet/psbtwallet.h
+++ b/src/wallet/psbtwallet.h
@@ -5,9 +5,7 @@
#ifndef BITCOIN_WALLET_PSBTWALLET_H
#define BITCOIN_WALLET_PSBTWALLET_H
-#include <node/transaction.h>
#include <psbt.h>
-#include <primitives/transaction.h>
#include <wallet/wallet.h>
/**
diff --git a/src/wallet/rpcdump.cpp b/src/wallet/rpcdump.cpp
index f52e4318c8..1cd4cb93b4 100644
--- a/src/wallet/rpcdump.cpp
+++ b/src/wallet/rpcdump.cpp
@@ -7,7 +7,6 @@
#include <interfaces/chain.h>
#include <key_io.h>
#include <merkleblock.h>
-#include <rpc/server.h>
#include <rpc/util.h>
#include <script/descriptor.h>
#include <script/script.h>
diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp
index debc3fecda..c8dbbf8108 100644
--- a/src/wallet/rpcwallet.cpp
+++ b/src/wallet/rpcwallet.cpp
@@ -9,7 +9,6 @@
#include <init.h>
#include <interfaces/chain.h>
#include <key_io.h>
-#include <node/transaction.h>
#include <outputtype.h>
#include <policy/feerate.h>
#include <policy/fees.h>
@@ -37,7 +36,6 @@
#include <univalue.h>
-#include <functional>
static const std::string WALLET_ENDPOINT_BASE = "/wallet/";
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index 1551c645d0..ca1f16f692 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -32,7 +32,6 @@
#include <algorithm>
#include <assert.h>
-#include <future>
#include <boost/algorithm/string/replace.hpp>
diff --git a/src/wallet/wallet.h b/src/wallet/wallet.h
index 006775e83b..62641fceec 100644
--- a/src/wallet/wallet.h
+++ b/src/wallet/wallet.h
@@ -11,7 +11,6 @@
#include <interfaces/handler.h>
#include <outputtype.h>
#include <policy/feerate.h>
-#include <script/sign.h>
#include <tinyformat.h>
#include <ui_interface.h>
#include <util/strencodings.h>
diff --git a/src/wallet/walletdb.h b/src/wallet/walletdb.h
index 0fee35934d..918dac9ecf 100644
--- a/src/wallet/walletdb.h
+++ b/src/wallet/walletdb.h
@@ -7,15 +7,12 @@
#define BITCOIN_WALLET_WALLETDB_H
#include <amount.h>
-#include <primitives/transaction.h>
#include <script/sign.h>
#include <wallet/db.h>
#include <key.h>
-#include <list>
#include <stdint.h>
#include <string>
-#include <utility>
#include <vector>
/**
diff --git a/src/wallet/wallettool.h b/src/wallet/wallettool.h
index 7ee2505631..bd08da42d6 100644
--- a/src/wallet/wallettool.h
+++ b/src/wallet/wallettool.h
@@ -5,7 +5,6 @@
#ifndef BITCOIN_WALLET_WALLETTOOL_H
#define BITCOIN_WALLET_WALLETTOOL_H
-#include <wallet/ismine.h>
#include <wallet/wallet.h>
namespace WalletTool {
diff --git a/src/warnings.h b/src/warnings.h
index 16c8f7b52e..e6701ebd9e 100644
--- a/src/warnings.h
+++ b/src/warnings.h
@@ -6,7 +6,6 @@
#ifndef BITCOIN_WARNINGS_H
#define BITCOIN_WARNINGS_H
-#include <stdlib.h>
#include <string>
void SetMiscWarning(const std::string& strWarning);
diff --git a/src/zmq/zmqconfig.h b/src/zmq/zmqconfig.h
index 5219ffad40..e3fdbf7402 100644
--- a/src/zmq/zmqconfig.h
+++ b/src/zmq/zmqconfig.h
@@ -10,13 +10,11 @@
#endif
#include <stdarg.h>
-#include <string>
#if ENABLE_ZMQ
#include <zmq.h>
#endif
-#include <primitives/block.h>
#include <primitives/transaction.h>
void zmqError(const char *str);
diff --git a/src/zmq/zmqnotificationinterface.cpp b/src/zmq/zmqnotificationinterface.cpp
index de59b71b8f..ebbaf8683d 100644
--- a/src/zmq/zmqnotificationinterface.cpp
+++ b/src/zmq/zmqnotificationinterface.cpp
@@ -5,7 +5,6 @@
#include <zmq/zmqnotificationinterface.h>
#include <zmq/zmqpublishnotifier.h>
-#include <version.h>
#include <validation.h>
#include <util/system.h>
diff --git a/src/zmq/zmqnotificationinterface.h b/src/zmq/zmqnotificationinterface.h
index a0cc26a162..6be0554a65 100644
--- a/src/zmq/zmqnotificationinterface.h
+++ b/src/zmq/zmqnotificationinterface.h
@@ -6,8 +6,6 @@
#define BITCOIN_ZMQ_ZMQNOTIFICATIONINTERFACE_H
#include <validationinterface.h>
-#include <string>
-#include <map>
#include <list>
class CBlockIndex;
diff --git a/test/README.md b/test/README.md
index 26fd525064..11adc11278 100644
--- a/test/README.md
+++ b/test/README.md
@@ -88,7 +88,7 @@ By default, up to 4 tests will be run in parallel by test_runner. To specify
how many jobs to run, append `--jobs=n`
The individual tests and the test_runner harness have many command-line
-options. Run `test_runner.py -h` to see them all.
+options. Run `test/functional/test_runner.py -h` to see them all.
#### Troubleshooting and debugging test failures
@@ -101,7 +101,7 @@ killed all its bitcoind nodes), then there may be a port conflict which will
cause the test to fail. It is recommended that you run the tests on a system
where no other bitcoind processes are running.
-On linux, the test_framework will warn if there is another
+On linux, the test framework will warn if there is another
bitcoind process running when the tests are started.
If there are zombie bitcoind processes after test failure, you can kill them
@@ -130,7 +130,7 @@ tests will fail. If this happens, remove the cache directory (and make
sure bitcoind processes are stopped as above):
```bash
-rm -rf cache
+rm -rf test/cache
killall bitcoind
```
@@ -149,6 +149,15 @@ levels using the logger included in the test_framework, e.g.
fails, the `test_framework.log` and bitcoind `debug.log`s will all be dumped
to the console to help troubleshooting.
+These log files can be located under the test data directory (which is always
+printed in the first line of test output):
+ - `<test data directory>/test_framework.log`
+ - `<test data directory>/node<node number>/regtest/debug.log`.
+
+The node number identifies the relevant test node, starting from `node0`, which
+corresponds to its position in the nodes list of the specific test,
+e.g. `self.nodes[0]`.
+
To change the level of logs output to the console, use the `-l` command line
argument.
@@ -157,7 +166,7 @@ aggregate log by running the `combine_logs.py` script. The output can be plain
text, colorized text or html. For example:
```
-combine_logs.py -c <test data directory> | less -r
+test/functional/combine_logs.py -c <test data directory> | less -r
```
will pipe the colorized logs from the test into less.
diff --git a/test/functional/README.md b/test/functional/README.md
index 197c2afbe4..a9b83076eb 100644
--- a/test/functional/README.md
+++ b/test/functional/README.md
@@ -4,13 +4,13 @@
#### Example test
-The [example_test.py](example_test.py) is a heavily commented example of a test case that uses both
-the RPC and P2P interfaces. If you are writing your first test, copy that file
-and modify to fit your needs.
+The file [test/functional/example_test.py](example_test.py) is a heavily commented example
+of a test case that uses both the RPC and P2P interfaces. If you are writing your first test, copy
+that file and modify to fit your needs.
#### Coverage
-Running `test_runner.py` with the `--coverage` argument tracks which RPCs are
+Running `test/functional/test_runner.py` with the `--coverage` argument tracks which RPCs are
called by the tests and prints a report of uncovered RPCs in the summary. This
can be used (along with the `--extended` argument) to find out which RPCs we
don't have test cases for.
@@ -82,7 +82,7 @@ P2P messages. These can be found in the following source files:
#### Using the P2P interface
-- `messages.py` contains all the definitions for objects that pass
+- [messages.py](test_framework/messages.py) contains all the definitions for objects that pass
over the network (`CBlock`, `CTransaction`, etc, along with the network-level
wrappers for them, `msg_block`, `msg_tx`, etc).
@@ -96,32 +96,35 @@ the Bitcoin Core node application logic. For custom behaviour, subclass the
P2PInterface object and override the callback methods.
- Can be used to write tests where specific P2P protocol behavior is tested.
-Examples tests are `p2p_unrequested_blocks.py`, `p2p_compactblocks.py`.
+Examples tests are [p2p_unrequested_blocks.py](p2p_unrequested_blocks.py),
+[p2p_compactblocks.py](p2p_compactblocks.py).
-### test-framework modules
+### Test framework modules
+The following are useful modules for test developers. They are located in
+[test/functional/test_framework/](test_framework).
-#### [test_framework/authproxy.py](test_framework/authproxy.py)
+#### [authproxy.py](test_framework/authproxy.py)
Taken from the [python-bitcoinrpc repository](https://github.com/jgarzik/python-bitcoinrpc).
-#### [test_framework/test_framework.py](test_framework/test_framework.py)
+#### [test_framework.py](test_framework/test_framework.py)
Base class for functional tests.
-#### [test_framework/util.py](test_framework/util.py)
+#### [util.py](test_framework/util.py)
Generally useful functions.
-#### [test_framework/mininode.py](test_framework/mininode.py)
+#### [mininode.py](test_framework/mininode.py)
Basic code to support P2P connectivity to a bitcoind.
-#### [test_framework/script.py](test_framework/script.py)
+#### [script.py](test_framework/script.py)
Utilities for manipulating transaction scripts (originally from python-bitcoinlib)
-#### [test_framework/key.py](test_framework/key.py)
+#### [key.py](test_framework/key.py)
Test-only secp256k1 elliptic curve implementation
-#### [test_framework/bignum.py](test_framework/bignum.py)
+#### [bignum.py](test_framework/bignum.py)
Helpers for script.py
-#### [test_framework/blocktools.py](test_framework/blocktools.py)
+#### [blocktools.py](test_framework/blocktools.py)
Helper functions for creating blocks and transactions.
### Benchmarking with perf