Page MenuHomePhabricator

Refactor chainparams class in preparation for splitting them by network
Changes PlannedPublic

Authored by jasonbcox on Dec 3 2020, 23:25.

Details

Reviewers
None
Group Reviewers
Restricted Project
Summary

Fixed seeds is done first as a proof of concept

Alternative to D8339

Test Plan
ninja bitcoind check
rm ~/.bitcoin/testnet3/peers.dat
./src/bitcoind -testnet -dnsseed=0

Wait 60 seconds and the node should start connecting to the fixed seeds.

Diff Detail

Event Timeline

jasonbcox planned changes to this revision.

Tail of the build log:

[311/494] Building CXX object src/CMakeFiles/util.dir/util/bip32.cpp.o
[312/494] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[313/494] Building CXX object src/CMakeFiles/util.dir/interfaces/handler.cpp.o
[314/494] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[315/494] Building CXX object src/CMakeFiles/util.dir/util/url.cpp.o
[316/494] Building CXX object src/CMakeFiles/util.dir/util/time.cpp.o
[317/494] Building CXX object src/CMakeFiles/util.dir/logging.cpp.o
[318/494] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/arith_uint256.cpp.o
[319/494] Building CXX object src/CMakeFiles/util.dir/util/spanparsing.cpp.o
[320/494] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/uint256.cpp.o
[321/494] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/util/strencodings.cpp.o
[322/494] Building CXX object src/CMakeFiles/util.dir/util/string.cpp.o
[323/494] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[324/494] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[325/494] Building CXX object src/CMakeFiles/util.dir/util/threadnames.cpp.o
[326/494] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/hash.cpp.o
[327/494] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[328/494] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[329/494] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[330/494] Building CXX object src/CMakeFiles/util.dir/blockdb.cpp.o
[331/494] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/tx_check.cpp.o
[332/494] Building CXX object src/CMakeFiles/util.dir/util/message.cpp.o
[333/494] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/pubkey.cpp.o
[334/494] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/primitives/transaction.cpp.o
[335/494] Building CXX object src/CMakeFiles/util.dir/util/settings.cpp.o
[336/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[337/494] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[338/494] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[339/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[340/494] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[341/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[342/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[343/494] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[344/494] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[345/494] Building CXX object src/zmq/CMakeFiles/zmq.dir/zmqabstractnotifier.cpp.o
[346/494] Building CXX object src/zmq/CMakeFiles/zmq.dir/zmqnotificationinterface.cpp.o
[347/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[348/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[349/494] Building CXX object src/CMakeFiles/util.dir/util/system.cpp.o
[350/494] Building CXX object src/seeder/CMakeFiles/seeder.dir/bitcoin.cpp.o
[351/494] Building CXX object src/seeder/CMakeFiles/seeder.dir/dns.cpp.o
[352/494] Linking CXX static library src/libutil.a
[353/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[354/494] Linking CXX static library src/libscript.a
[355/494] Linking CXX static library src/librpcclient.a
[356/494] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[357/494] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[358/494] Building CXX object src/zmq/CMakeFiles/zmq.dir/zmqpublishnotifier.cpp.o
[359/494] Building CXX object src/seeder/CMakeFiles/seeder.dir/db.cpp.o
[360/494] Building CXX object src/zmq/CMakeFiles/zmq.dir/zmqrpc.cpp.o
[361/494] Linking CXX static library src/zmq/libzmq.a
[362/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[363/494] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[364/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[365/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[366/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[367/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[368/494] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1

Tail of the build log:

        delete __ptr;
        ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/unique_ptr.h:274:4: note: in instantiation of member function 'std::default_delete<CChainParams>::operator()' requested here
          get_deleter()(__ptr);
          ^
../../src/./config.h:52:7: note: in instantiation of member function 'std::unique_ptr<CChainParams, std::default_delete<CChainParams> >::~unique_ptr' requested here
class DummyConfig : public Config {
      ^
1 warning generated.
[165/418] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/__/wallet/test/coinselector_tests.cpp.o
[166/418] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/__/wallet/test/walletdb_tests.cpp.o
[167/418] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/rpcnestedtests.cpp.o
[168/418] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/uritests.cpp.o
In file included from ../../src/qt/test/uritests.cpp:8:
In file included from ../../src/./chainparams.h:9:
In file included from ../../src/./chainparamsbase.h:8:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/memory:80:
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/unique_ptr.h:81:2: warning: delete called on 'CChainParams' that is abstract but has non-virtual destructor [-Wdelete-abstract-non-virtual-dtor]
        delete __ptr;
        ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/unique_ptr.h:274:4: note: in instantiation of member function 'std::default_delete<CChainParams>::operator()' requested here
          get_deleter()(__ptr);
          ^
../../src/qt/test/uritests.cpp:16:25: note: in instantiation of member function 'std::unique_ptr<CChainParams, std::default_delete<CChainParams> >::~unique_ptr' requested here
    const auto params = CreateChainParams(CBaseChainParams::MAIN);
                        ^
1 warning generated.
[169/418] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/__/wallet/test/wallet_tests.cpp.o
[170/418] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/apptests.cpp.o
[171/418] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_main.cpp.o
[172/418] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/util_tests.cpp.o
In file included from ../../src/test/util_tests.cpp:5:
In file included from ../../src/./util/system.h:20:
In file included from ../../src/./fs.h:14:
In file included from /usr/include/boost/filesystem.hpp:16:
In file included from /usr/include/boost/filesystem/path.hpp:25:
In file included from /usr/include/boost/filesystem/path_traits.hpp:29:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/locale:43:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/locale_conv.h:41:
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/unique_ptr.h:81:2: warning: delete called on 'CChainParams' that is abstract but has non-virtual destructor [-Wdelete-abstract-non-virtual-dtor]
        delete __ptr;
        ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/unique_ptr.h:274:4: note: in instantiation of member function 'std::default_delete<CChainParams>::operator()' requested here
          get_deleter()(__ptr);
          ^
../../src/test/util_tests.cpp:2418:25: note: in instantiation of member function 'std::unique_ptr<CChainParams, std::default_delete<CChainParams> >::~unique_ptr' requested here
    const auto params = CreateChainParams(CBaseChainParams::MAIN);
                        ^
1 warning generated.
[173/418] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/wallet/test/wallet_test_fixture.cpp.o
[174/418] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/paymentservertests.cpp.o
[175/418] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/addressbooktests.cpp.o
[176/418] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/wallettests.cpp.o
[177/418] Linking CXX executable src/qt/test/test_bitcoin-qt
[178/418] bitcoin-qt: testing test_bitcoin-qt
[179/418] Running bitcoin-qt test suite
PASSED: bitcoin-qt test suite
[180/418] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/script_tests.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1

Tail of the build log:

wallet_coinbase_category.py                      | ○ Skipped | 0 s
wallet_create_tx.py                              | ○ Skipped | 0 s
wallet_createwallet.py                           | ○ Skipped | 0 s
wallet_createwallet.py --usecli                  | ○ Skipped | 0 s
wallet_descriptor.py                             | ○ Skipped | 0 s
wallet_dump.py                                   | ○ Skipped | 0 s
wallet_encryption.py                             | ○ Skipped | 0 s
wallet_groups.py                                 | ○ Skipped | 0 s
wallet_hd.py                                     | ○ Skipped | 0 s
wallet_import_rescan.py                          | ○ Skipped | 0 s
wallet_import_with_label.py                      | ○ Skipped | 0 s
wallet_importdescriptors.py                      | ○ Skipped | 0 s
wallet_importmulti.py                            | ○ Skipped | 0 s
wallet_importprunedfunds.py                      | ○ Skipped | 0 s
wallet_keypool.py                                | ○ Skipped | 0 s
wallet_keypool_topup.py                          | ○ Skipped | 0 s
wallet_labels.py                                 | ○ Skipped | 0 s
wallet_listreceivedby.py                         | ○ Skipped | 0 s
wallet_listsinceblock.py                         | ○ Skipped | 0 s
wallet_listtransactions.py                       | ○ Skipped | 0 s
wallet_multiwallet.py                            | ○ Skipped | 0 s
wallet_multiwallet.py --usecli                   | ○ Skipped | 0 s
wallet_reorgsrestore.py                          | ○ Skipped | 0 s
wallet_resendwallettransactions.py               | ○ Skipped | 0 s
wallet_txn_clone.py                              | ○ Skipped | 0 s
wallet_txn_clone.py --mineblock                  | ○ Skipped | 0 s
wallet_txn_doublespend.py                        | ○ Skipped | 0 s
wallet_txn_doublespend.py --mineblock            | ○ Skipped | 0 s
wallet_watchonly.py                              | ○ Skipped | 0 s
wallet_watchonly.py --usecli                     | ○ Skipped | 0 s
wallet_zapwallettxes.py                          | ○ Skipped | 0 s

ALL                                              | ✓ Passed  | 309 s (accumulated) 
Runtime: 62 s

[149/389] Running seeder test suite
PASSED: seeder test suite
[150/389] Test Bitcoin RPC authentication...
...
----------------------------------------------------------------------
Ran 3 tests in 0.004s

OK
[151/389] cd /work/contrib/devtools/chainparams && /usr/bin/python3.7 ./test_make_chainparams.py
.....
----------------------------------------------------------------------
Ran 5 tests in 0.001s

OK
[165/389] Running bitcoin-qt test suite
PASSED: bitcoin-qt test suite
[166/389] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/script_tests.cpp.o
In file included from /usr/include/boost/test/unit_test.hpp:19,
                 from ../../src/test/script_tests.cpp:30:
../../src/test/script_tests.cpp: In member function ‘void script_tests::script_build::test_method()’:
../../src/test/script_tests.cpp:541:22: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without
 BOOST_AUTO_TEST_CASE(script_build) {
                      ^~~~~~~~~~~~
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

Tail of the build log:

ALL                                              | ✓ Passed  | 1247 s (accumulated) 
Runtime: 250 s

[22/426] Building CXX object src/pow/test/CMakeFiles/test-pow.dir/aserti32d_tests.cpp.o
FAILED: src/pow/test/CMakeFiles/test-pow.dir/aserti32d_tests.cpp.o 
/usr/bin/ccache /usr/bin/c++  -DBOOST_AC_USE_STD_ATOMIC -DBOOST_SP_USE_STD_ATOMIC -DBOOST_TEST_DYN_LINK -DBUILD_BITCOIN_INTERNAL -DDEBUG -DDEBUG_LOCKORDER -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I../../src/. -Isrc -I../../src/univalue/include -Isrc/crypto/.. -I../../src/secp256k1/include -I../../src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -O0 -fPIE -fvisibility=hidden   -g3 -ftrapv -fstack-reuse=none -fstack-protector-all -Wstack-protector -U_FORTIFY_SOURCE -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wshadow -Wredundant-decls -Wformat-security -Wno-unused-parameter -Wno-implicit-fallthrough -pthread -std=gnu++17 -MD -MT src/pow/test/CMakeFiles/test-pow.dir/aserti32d_tests.cpp.o -MF src/pow/test/CMakeFiles/test-pow.dir/aserti32d_tests.cpp.o.d -o src/pow/test/CMakeFiles/test-pow.dir/aserti32d_tests.cpp.o -c ../../src/pow/test/aserti32d_tests.cpp
../../src/pow/test/aserti32d_tests.cpp: In member function ‘void aserti32d_tests::asert_activation_anchor_test::test_method()’:
../../src/pow/test/aserti32d_tests.cpp:552:40: error: cannot declare variable ‘chainParams’ to be of abstract type ‘aserti32d_tests::ChainParamsWithDAAActivation’
     const ChainParamsWithDAAActivation chainParams(*mainChainParams, 2016);
                                        ^~~~~~~~~~~
../../src/pow/test/aserti32d_tests.cpp:535:7: note:   because the following virtual functions are pure within ‘aserti32d_tests::ChainParamsWithDAAActivation’:
 class ChainParamsWithDAAActivation : public CChainParams {
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../src/pow/test/aserti32d_tests.cpp:8:
../../src/./chainparams.h:93:43: note: 	‘virtual const std::vector<SeedSpec6>& CChainParams::FixedSeeds() const’
     virtual const std::vector<SeedSpec6> &FixedSeeds() const = 0;
                                           ^~~~~~~~~~
[65/426] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/checkpoints_tests.cpp.o
FAILED: src/test/CMakeFiles/test_bitcoin.dir/checkpoints_tests.cpp.o 
/usr/bin/ccache /usr/bin/c++  -DBOOST_AC_USE_STD_ATOMIC -DBOOST_SP_USE_STD_ATOMIC -DBOOST_TEST_DYN_LINK -DBUILD_BITCOIN_INTERNAL -DDEBUG -DDEBUG_LOCKORDER -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I../../src/univalue/include -I../../src/. -Isrc -Isrc/crypto/.. -I../../src/secp256k1/include -I../../src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -O0 -fPIE -fvisibility=hidden   -g3 -ftrapv -fstack-reuse=none -fstack-protector-all -Wstack-protector -U_FORTIFY_SOURCE -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wshadow -Wredundant-decls -Wformat-security -Wno-unused-parameter -Wno-implicit-fallthrough -pthread -std=gnu++17 -MD -MT src/test/CMakeFiles/test_bitcoin.dir/checkpoints_tests.cpp.o -MF src/test/CMakeFiles/test_bitcoin.dir/checkpoints_tests.cpp.o.d -o src/test/CMakeFiles/test_bitcoin.dir/checkpoints_tests.cpp.o -c ../../src/test/checkpoints_tests.cpp
In file included from /usr/include/c++/8/memory:80,
                 from ../../src/./serialize.h:20,
                 from ../../src/./blockstatus.h:9,
                 from ../../src/./blockindex.h:9,
                 from ../../src/./chain.h:10,
                 from ../../src/test/checkpoints_tests.cpp:12:
/usr/include/c++/8/bits/unique_ptr.h: In instantiation of ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = checkpoints_tests::ChainParamsWithCheckpoints; _Args = {CChainParams&, CCheckpointData&}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<checkpoints_tests::ChainParamsWithCheckpoints, std::default_delete<checkpoints_tests::ChainParamsWithCheckpoints> >]’:
../../src/test/checkpoints_tests.cpp:69:72:   required from here
/usr/include/c++/8/bits/unique_ptr.h:831:30: error: invalid new-expression of abstract class type ‘checkpoints_tests::ChainParamsWithCheckpoints’
     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/test/checkpoints_tests.cpp:48:7: note:   because the following virtual functions are pure within ‘checkpoints_tests::ChainParamsWithCheckpoints’:
 class ChainParamsWithCheckpoints : public CChainParams {
       ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../src/test/checkpoints_tests.cpp:13:
../../src/./chainparams.h:93:43: note: 	‘virtual const std::vector<SeedSpec6>& CChainParams::FixedSeeds() const’
     virtual const std::vector<SeedSpec6> &FixedSeeds() const = 0;
                                           ^~~~~~~~~~
[116/426] Running secp256k1 test suite
PASSED: secp256k1 test suite
[144/426] Test Bitcoin RPC authentication...
...
----------------------------------------------------------------------
Ran 3 tests in 0.018s

OK
[145/426] cd /work/contrib/devtools/chainparams && /usr/bin/python3.7 ./test_make_chainparams.py
.....
----------------------------------------------------------------------
Ran 5 tests in 0.001s

OK
[165/426] Running seeder test suite
PASSED: seeder test suite
[171/426] Running avalanche test suite
PASSED: avalanche test suite
[187/426] Running bitcoin-qt test suite
PASSED: bitcoin-qt test suite
ninja: build stopped: cannot make progress due to previous errors.
Build build-debug failed with exit code 1

Tail of the build log:

rpc_invalidateblock.py                           | ✓ Passed  | 1 s
rpc_misc.py                                      | ✓ Passed  | 1 s
rpc_named_arguments.py                           | ✓ Passed  | 1 s
rpc_net.py                                       | ✓ Passed  | 1 s
rpc_preciousblock.py                             | ✓ Passed  | 1 s
rpc_psbt.py                                      | ✓ Passed  | 27 s
rpc_rawtransaction.py                            | ✓ Passed  | 38 s
rpc_scantxoutset.py                              | ✓ Passed  | 3 s
rpc_setban.py                                    | ✓ Passed  | 2 s
rpc_signmessage.py                               | ✓ Passed  | 1 s
rpc_signrawtransaction.py                        | ✓ Passed  | 1 s
rpc_txoutproof.py                                | ✓ Passed  | 2 s
rpc_uptime.py                                    | ✓ Passed  | 1 s
rpc_users.py                                     | ✓ Passed  | 4 s
rpc_whitelist.py                                 | ✓ Passed  | 1 s
tool_wallet.py                                   | ✓ Passed  | 3 s
wallet_abandonconflict.py                        | ✓ Passed  | 12 s
wallet_address_types.py                          | ✓ Passed  | 15 s
wallet_avoidreuse.py                             | ✓ Passed  | 4 s
wallet_backup.py                                 | ✓ Passed  | 24 s
wallet_balance.py                                | ✓ Passed  | 12 s
wallet_basic.py                                  | ✓ Passed  | 21 s
wallet_coinbase_category.py                      | ✓ Passed  | 1 s
wallet_create_tx.py                              | ✓ Passed  | 5 s
wallet_createwallet.py                           | ✓ Passed  | 2 s
wallet_createwallet.py --usecli                  | ✓ Passed  | 2 s
wallet_descriptor.py                             | ✓ Passed  | 5 s
wallet_disable.py                                | ✓ Passed  | 0 s
wallet_dump.py                                   | ✓ Passed  | 2 s
wallet_encryption.py                             | ✓ Passed  | 5 s
wallet_groups.py                                 | ✓ Passed  | 27 s
wallet_hd.py                                     | ✓ Passed  | 5 s
wallet_import_rescan.py                          | ✓ Passed  | 4 s
wallet_import_with_label.py                      | ✓ Passed  | 1 s
wallet_importdescriptors.py                      | ✓ Passed  | 5 s
wallet_importmulti.py                            | ✓ Passed  | 3 s
wallet_importprunedfunds.py                      | ✓ Passed  | 1 s
wallet_keypool.py                                | ✓ Passed  | 3 s
wallet_keypool_topup.py                          | ✓ Passed  | 2 s
wallet_labels.py                                 | ✓ Passed  | 1 s
wallet_listreceivedby.py                         | ✓ Passed  | 26 s
wallet_listsinceblock.py                         | ✓ Passed  | 3 s
wallet_listtransactions.py                       | ✓ Passed  | 9 s
wallet_multiwallet.py                            | ✓ Passed  | 14 s
wallet_multiwallet.py --usecli                   | ✓ Passed  | 14 s
wallet_reorgsrestore.py                          | ✓ Passed  | 3 s
wallet_resendwallettransactions.py               | ✓ Passed  | 11 s
wallet_txn_clone.py                              | ✓ Passed  | 2 s
wallet_txn_clone.py --mineblock                  | ✓ Passed  | 2 s
wallet_txn_doublespend.py                        | ✓ Passed  | 2 s
wallet_txn_doublespend.py --mineblock            | ✓ Passed  | 3 s
wallet_watchonly.py                              | ✓ Passed  | 1 s
wallet_watchonly.py --usecli                     | ✓ Passed  | 1 s
wallet_zapwallettxes.py                          | ✓ Passed  | 3 s

ALL                                              | ✓ Passed  | 831 s (accumulated) 
Runtime: 167 s

ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

Moved function to generated file and fixed test failure

Tail of the build log:

[317/493] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/hash.cpp.o
[318/493] Linking C executable src/secp256k1/ecmult-bench
[319/493] Linking C executable src/secp256k1/internal-bench
[320/493] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/uint256.cpp.o
[321/493] Linking C executable src/secp256k1/verify-bench
[322/493] Linking C executable src/secp256k1/sign-bench
[323/493] Linking C executable src/secp256k1/recover-bench
[324/493] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[325/493] Building CXX object src/CMakeFiles/util.dir/util/error.cpp.o
[326/493] Building CXX object src/CMakeFiles/util.dir/util/message.cpp.o
[327/493] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/pubkey.cpp.o
[328/493] Building CXX object src/CMakeFiles/util.dir/util/settings.cpp.o
[329/493] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[330/493] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/tx_check.cpp.o
[331/493] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/primitives/transaction.cpp.o
[332/493] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/util/strencodings.cpp.o
[333/493] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[334/493] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[335/493] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[336/493] Building CXX object src/CMakeFiles/util.dir/util/time.cpp.o
[337/493] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[338/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[339/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[340/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[341/493] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[342/493] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[343/493] Building CXX object src/zmq/CMakeFiles/zmq.dir/zmqabstractnotifier.cpp.o
[344/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[345/493] Building CXX object src/CMakeFiles/util.dir/util/system.cpp.o
[346/493] Linking CXX static library src/libutil.a
[347/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[348/493] Linking CXX static library src/librpcclient.a
[349/493] Linking CXX static library src/libscript.a
[350/493] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[351/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[352/493] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[353/493] Building CXX object src/seeder/CMakeFiles/seeder.dir/dns.cpp.o
[354/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[355/493] Building CXX object src/seeder/CMakeFiles/seeder.dir/bitcoin.cpp.o
[356/493] Building CXX object src/zmq/CMakeFiles/zmq.dir/zmqnotificationinterface.cpp.o
[357/493] Building CXX object src/zmq/CMakeFiles/zmq.dir/zmqpublishnotifier.cpp.o
[358/493] Building CXX object src/seeder/CMakeFiles/seeder.dir/db.cpp.o
[359/493] Building CXX object src/zmq/CMakeFiles/zmq.dir/zmqrpc.cpp.o
[360/493] Linking CXX static library src/zmq/libzmq.a
[361/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[362/493] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[363/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[364/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[365/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[366/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[367/493] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1

Tail of the build log:

[360/418] Running utility command for check-bitcoin-bip32_tests
[361/418] Running utility command for check-bitcoin-sync_tests
[362/418] bitcoin: testing torcontrol_tests
[363/418] bitcoin: testing settings_tests
[364/418] Running utility command for check-bitcoin-torcontrol_tests
[365/418] Running utility command for check-bitcoin-settings_tests
[366/418] bitcoin: testing timedata_tests
[367/418] bitcoin: testing wallet_crypto_tests
[368/418] Running utility command for check-bitcoin-timedata_tests
[369/418] bitcoin: testing streams_tests
[370/418] bitcoin: testing undo_tests
[371/418] Running utility command for check-bitcoin-wallet_crypto_tests
[372/418] Running utility command for check-bitcoin-streams_tests
[373/418] Running utility command for check-bitcoin-undo_tests
[374/418] bitcoin: testing util_threadnames_tests
[375/418] Running utility command for check-bitcoin-util_threadnames_tests
[376/418] bitcoin: testing validation_chainstatemanager_tests
[377/418] bitcoin: testing compilerbug_tests
[378/418] bitcoin: testing cuckoocache_tests
[379/418] Running utility command for check-bitcoin-compilerbug_tests
[380/418] Running utility command for check-bitcoin-validation_chainstatemanager_tests
[381/418] Running utility command for check-bitcoin-cuckoocache_tests
[382/418] bitcoin: testing txvalidationcache_tests
[383/418] Running utility command for check-bitcoin-txvalidationcache_tests
[384/418] bitcoin: testing checkpoints_tests
[385/418] bitcoin: testing validationinterface_tests
[386/418] Running utility command for check-bitcoin-checkpoints_tests
[387/418] Running utility command for check-bitcoin-validationinterface_tests
[388/418] bitcoin: testing getarg_tests
[389/418] bitcoin: testing radix_tests
[390/418] bitcoin: testing blockcheck_tests
[391/418] Running utility command for check-bitcoin-getarg_tests
[392/418] bitcoin: testing ref_tests
[393/418] Running utility command for check-bitcoin-radix_tests
[394/418] Running utility command for check-bitcoin-blockcheck_tests
[395/418] Running utility command for check-bitcoin-ref_tests
[396/418] bitcoin: testing crypto_tests
[397/418] Running utility command for check-bitcoin-crypto_tests
[398/418] bitcoin: testing monolith_opcodes_tests
[399/418] Running utility command for check-bitcoin-monolith_opcodes_tests
[400/418] bitcoin: testing validation_tests
[401/418] Running utility command for check-bitcoin-validation_tests
[402/418] bitcoin: testing script_tests
[403/418] Running utility command for check-bitcoin-script_tests
[404/418] bitcoin: testing coinselector_tests
[405/418] Running utility command for check-bitcoin-coinselector_tests
[406/418] bitcoin: testing skiplist_tests
[407/418] Running utility command for check-bitcoin-skiplist_tests
[408/418] bitcoin: testing util_tests
[409/418] Running utility command for check-bitcoin-util_tests
[410/418] bitcoin: testing op_reversebytes_tests
[411/418] Running utility command for check-bitcoin-op_reversebytes_tests
[412/418] bitcoin: testing transaction_tests
[413/418] Running utility command for check-bitcoin-transaction_tests
[414/418] bitcoin: testing coins_tests
[415/418] Running utility command for check-bitcoin-coins_tests
[416/418] Running bitcoin test suite
PASSED: bitcoin test suite
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1