Commit Graph

22066 Commits

Author SHA1 Message Date
Wladimir J. van der Laan
bd642f66d8 Merge #17488: test: fix "bitcoind already running" warnings on macOS
1c23ea5fe67b88fd72a1ff640dd1bbb21a34fbf4 test: fix bitcoind already running warnings on macOS (fanquake)

Pull request description:

  On macOS, `pidof` installed via brew returns b'' rather than None.
  Account for this, to remove spurious warnings from the test_runner.

ACKs for top commit:
  laanwj:
    ACK 1c23ea5fe67b88fd72a1ff640dd1bbb21a34fbf4

Tree-SHA512: 640f4323d4105eac5c7abb52daf80486d5d3b4a074720490ceeb97c3dd8d73a3de9a988d2550f1e2076c620bb10d452b2959d8b723d2ee64f499878909824e31
2022-08-24 14:29:45 -04:00
MarcoFalke
2b035a75f2 Merge #17455: tests: Update valgrind suppressions
d604b4cc8c112a38976c4662cbdc3217a0e5b370 tests: Update valgrind suppressions (practicalswift)

Pull request description:

  Update `valgrind` suppressions.

  To test this PR:

  ```
  $ valgrind --suppressions=contrib/valgrind.supp src/test/test_bitcoin
  $ valgrind --suppressions=contrib/valgrind.supp src/bench/bench_bitcoin -evals=1 \
        -scaling=0.0
  ```

Top commit has no ACKs.

Tree-SHA512: 79cb318b5b9171e74d0bd0b89cc688ad4531b134182b06c2942c46058c19b45723c391b781e8ccd157a14fbf6a14588764c7728c5506c73ae237dde9f44db2f6
2022-08-24 14:29:45 -04:00
MarcoFalke
640616ff10 Merge #17469: test: Remove fragile assert_memory_usage_stable
fac942ca57dce6cfa5655a3ac8664d6a051bc01f test: Remove fragile assert_memory_usage_stable (MarcoFalke)

Pull request description:

  This test fails on arm64 and a fuzz tests seems inappropriate for the functional test suite anyway, so remove it.

  Example failures:

  * https://travis-ci.org/bitcoin/bitcoin/jobs/611497963#L14517
  * https://travis-ci.org/MarcoFalke/bitcoin-core/jobs/611029104#L3876

ACKs for top commit:
  jamesob:
    ACK fac942ca57

Tree-SHA512: 3577e7ce5891d221cb798454589ba796ed0c06621a26351bb919c23bc6bb46aafcd0b11cb02bbfde64b74d67cb2950da44959a7ecdc436491a34e8b045c1ccf4
2022-08-24 14:29:45 -04:00
MarcoFalke
0a5587c2f7 Merge #17435: test: check custom ancestor limit in mempool_packages.py
49997813a4db388b2810e5e27ef771e8aa6a1f03 test: check custom ancestor limit in mempool_packages.py (Sebastian Falbesoner)

Pull request description:

  The functional test `mempool_packages.py` starts one node with default ancestor/descendant limit settings and one with a custom, reduced ancestor limit (currently `-limitancestorcount=5`). The effect of the latter had not been tested yet though. This is approached in this PR by checking on the expected mempool contents of node1 after the node0 ancestor tests are done, via the following three conditions:
  - the # of txs in the node1 mempool is equal to the the limit
  - all txs in node1 mempool are a subset of txs in node0 mempool
  - the node1 mempool txs match the start of the constructed tx-chain

  Note that this still doesn't *fully* check the expected mempool of node1 (e.g. that it isn't influenced by `prioritisetransaction` RPC on node0), hence I add another TODO. In the future it would make sense to also set a custom descendant limit when the second TODO about checking node1's mempool is approached: 89e93135ae/test/functional/mempool_packages.py (L228)

ACKs for top commit:
  MarcoFalke:
    ACK 49997813a4db388b2810e5e27ef771e8aa6a1f03 👲

Tree-SHA512: d3a1d19fb49731238ad08ee7c02e2fa81a227e3b4ef3340d68598de42ddb62be9161134f6b8e08fa76b8c9faa02fecfa01111159642e20e9f358292a757b7608
2022-08-24 14:29:45 -04:00
MarcoFalke
cb1a2f3d5e Merge #17340: Tests: speed up fundrawtransaction test
af7bae734089f6af0029b0887932ccd9a469e12e [tests] Don't stop-start unnecessarily in rpc_fundrawtransaction.py (John Newbery)
9a8505299ba392acbab4647963113b0c29495f1d [tests] Use -whitelist in rpc_fundrawtransaction.py (John Newbery)
646b593bbd0db113c6e45ab92177b8f5251e8710 [tests] Speed up rpc_fundrawtransaction.py (John Newbery)

Pull request description:

  Speed up rpc_fundrawtransaction.py

  Most of the time in rpc_fundrawtransaction.py is spent waiting for
  unconfirmed transactions to propagate. Net processing adds a poisson
  random delay to the time it will INV transactions with a mean interval
  of 5 seconds. Calls like the following:

  ```
  self.nodes[2].sendrawtransaction(signedTx['hex'])
  self.sync_all()
  self.nodes[1].generate(1)
  ````

  will therefore introduce a delay waiting for the mempools to sync.
  Instead just generate the block on the node that sent the transaction:

  ```
  self.nodes[2].sendrawtransaction(signedTx['hex'])
  self.nodes[2].generate(1)
  ```

  rpc_fundrawtransaction.py is not intended to be a test for transaction
  relay, so it's ok to do this.

ACKs for top commit:
  MarcoFalke:
    ACK af7bae734089f6af0029b0887932ccd9a469e12e 🛴

Tree-SHA512: db3407d871bfdc99a02e7304b07239dd3585ac47f27f020f1a70608b7f6386b134343c01f3e4d1c246ce734676755897671999695068d6388602fb042d178780
2022-08-24 14:29:45 -04:00
fanquake
97308cf855 Merge #17370: doc: Update doc/bips.md with recent changes in master
fa7f5a4d2a2581cc25125311892a80efc2c494e2 doc: Update doc/bips.md with recent changes in master (MarcoFalke)

Pull request description:

  Follow-up to #17165

ACKs for top commit:
  jonatack:
    ACK fa7f5a4d2a2581cc25125311892a80efc2c494e2. Verified markdown view at https://github.com/MarcoFalke/bitcoin-core/blob/1911-docBips/doc/bips.md and the urls in the links. Some of the PRs are indicated with # and some without, but this is the case over the whole document.
  laanwj:
    ACK fa7f5a4d2a2581cc25125311892a80efc2c494e2
  fanquake:
    ACK fa7f5a4d2a2581cc25125311892a80efc2c494e2

Tree-SHA512: 31782b5f1f2f10b1189f05f010f908c183dbe723477ca1c46ad1d3bee5ea483335847008a7fe48d72373ccd39b84e0b950d0d1b23e457cb70f34210c5f2dc6aa
2022-08-24 14:29:45 -04:00
Wladimir J. van der Laan
0882c487e3 Merge #17382: rpc: Remove unused boost::this_thread::interruption_point
fa5facd3e72b6d61374b0b93b722b55e2b090020 rpc: Remove unused boost::this_thread::interruption_point (MarcoFalke)

Pull request description:

  There are predefined interruption points for `boost::thread`: https://www.boost.org/doc/libs/1_71_0/doc/html/thread/thread_management.html#interruption_points

  However, the rpc threads are `std::thread`, which does not have an `std:🧵:interrupt` member function to request interruption: https://dev.visucore.com/bitcoin/doxygen/httpserver_8cpp.html#ae1a63374e18b9abd348eb74e4243ea34

  Thus, the interruption points can be removed.

ACKs for top commit:
  laanwj:
    ACK fa5facd3e72b6d61374b0b93b722b55e2b090020, this does nothing.
  practicalswift:
    ACK fa5facd3e72b6d61374b0b93b722b55e2b090020
  jamesob:
    ACK fa5facd3e7

Tree-SHA512: 4e29a44df1f2702cbd1ffdffa559440a8bb800baab64b4116e2c3d27cd64d8d1e8aafe1dc21b1a4e3988470d03be19cae294bd5669f7abf6d487685dc8fd8d7e
2022-08-24 14:29:45 -04:00
Wladimir J. van der Laan
b3488835af Merge #17044: init: Remove auto-import of bootstrap.dat and associated code
104f7de5934f13b837fcf21f6d6b2559799eabe2 remove old bootstrap relevant code (tryphe)

Pull request description:

  This picks up #15954

  I fixed the code and added at a functional test utilizing the scripts in `contrib/linearize` as suggested by @MarcoFalke .

ACKs for top commit:
  laanwj:
    ACK 104f7de5934f13b837fcf21f6d6b2559799eabe2

Tree-SHA512: acac9f285f9785fcbc3afc78118461e45bec2962f90ab90e9f82f3ad28adc90a44f0443b712458ccf486e46d891eb8a67f53e7bee5fa6d89e4387814fe03f117
2022-08-24 14:29:45 -04:00
Samuel Dobson
d839dd4c1e Merge #17258: Fix issue with conflicted mempool tx in listsinceblock
436ad436434b94982bcb7dc1d13a21949263ef73 Fix issue with conflicted mempool tx in listsinceblock (Adam Jonas)

Pull request description:

  Closes #8752 by bringing back abandoned #10470.

  This now checks that returned transactions are not conflicting with any transactions that are filtered out by the given blockhash and add a functional test to prevent this in the future.

  For more context, #8757 was closed in favor of #10470.

ACKs for top commit:
  instagibbs:
    utACK 436ad43643
  kallewoof:
    utACK 436ad436434b94982bcb7dc1d13a21949263ef73
  jonatack:
    I'm not qualifed to give an ACK here but 436ad436434b94982bcb7dc1d13a21949263ef73 appears reasonable. Built/ran tests/verified that this test fails without the change in rpcwallet.cpp:

Tree-SHA512: 63d75cd3d3f19fc84dc38899b200c96179b82b24db263cd0116ee5b715265be647157855c2e35912d2fbc49c7b37db9375d6aab0ac672f0f09bece8431de5ea9
2022-08-24 14:29:45 -04:00
UdjinM6
5a7f6a7133
Merge pull request #4981 from UdjinM6/merge_master_18.0.1
chore: Merge master 18.0.1 back into develop
2022-08-18 22:34:56 +03:00
UdjinM6
b1b7a11648
Merge branch 'master' into merge_master_18.0.1 2022-08-17 23:39:55 +03:00
UdjinM6
75298fce5e
chore: bump version to 18.0.1 (#4980) 2022-08-17 19:40:59 +03:00
UdjinM6
db99678965
Merge pull request #4979 from PastaPastaPasta/18.x/backport-more
18.x/backport more
2022-08-17 19:28:25 +03:00
UdjinM6
6a57fa0c68
backport: macos code signing (dashpay#4978) 2022-08-17 11:26:18 -05:00
PastaPastaPasta
53a6888ec9
doc: update release notes slightly (#4972) 2022-08-17 19:19:35 +03:00
UdjinM6
8a9d0c5fe8
Merge pull request #4978 from UdjinM6/bp_macos_sig
backport: macos code signing
2022-08-17 19:19:02 +03:00
UdjinM6
747475b55f
fix(gitian): Fetch tags while cloning the repo via gbuild (#4976)
Should fix version numbers for releases/candidates
2022-08-17 11:17:42 -05:00
UdjinM6
6f40461bb7
fix: Allow triggers with p2sh after DIP0024 (#4973) 2022-08-17 11:17:29 -05:00
UdjinM6
00335a0282
bump signapple to the latest commit used in bitcoin atm
see 7a0b129c41/contrib/guix/manifest.scm (L502)
2022-08-17 18:35:47 +03:00
fanquake
6b615cfc67
Partial merge bitcoin/bitcoin#22190: Use latest signapple commit
683d197970a533690ca1bd4d06d021900e87cb8b Use latest signapple commit (Andrew Chow)

Pull request description:

  Update gitian and guix to use the same latest signapple commit.

  Also changed guix to use the actual repo. The changes from the fork were incorporated upstream.

ACKs for top commit:
  fanquake:
    ACK 683d197970a533690ca1bd4d06d021900e87cb8b - sanity checked that the updated package is built:

Tree-SHA512: a4981f8bbe33e6c5654632bc9b9f6f2f1e675741a19ac7296205e370f1e64a747101ecb632e0cc82a0134e4c2e9ce47b3f7b4d8c8f75f0f06dd069c078303759
2022-08-17 18:30:46 +03:00
Wladimir J. van der Laan
c57de2596a
Merge #20880: gitian: Use custom MacOS code signing tool
2c403279e2f0f7c8c27c56d4e7b0573c59571f0a gitian: Remove codesign_allocate and pagestuff from MacOS build (Andrew Chow)
f55eed251488d70d5e2e3a2965a4f8ec0c476853 gitian: use signapple to create the MacOS code signature (Andrew Chow)
95b06d21852b28712db6c710e420a58bdc1a0944 gitian: use signapple to apply the MacOS code signature (Andrew Chow)
42bb1ea363286b088257cabccb686ef1887c1d3b gitian: install signapple in gitian-osx-signer.yml (Andrew Chow)

Pull request description:

  The MacOS code signing issues that were encountered during the 0.21.0 release cycle have shown that it is necessary for us to use a code signing tool for which the source code is available and modifiable by us. Given that there appears to not be such a tool available, I have written such a tool, [signapple](https://github.com/achow101/signapple), that we can use. This tool is able to create a valid MacOS code signature, detach it in a way that we were doing previously, and attach it to the unsigned binary. This tool can also verify that the signature is correct.

  This PR implements the usage of that tool in the gitian build for the code signed MacOS binary. The code signer will use this tool to create the detached signature. Gitian builders will use this tool to apply the detached signature. The `gitian-osx-signer.yml` descriptor has been modified to install this tool so that the `detached-sig-apply.sh` script can use it. Additionally, the `codesign_allocate` and `pagestuff` tools are no longer necessary so they are no longer added to the tarball used in code signing. Lastly, both the `detached-sig-create.sh` and `detached-sig-apply.sh` scripts are made to be significantly less complex and to not do unexpected things such as unpacking an already unpacked tarball.

  The detached code signature that signapple creates is almost identical to that which we were previously creating. The only difference is that the cpu architecture name is included in the extension (e.g. we have `bitcoin-qt.x86_64sign` instead of `bitcoin-qt.sign`). This was done in order to support signing universal binaries which we may want to do in the future. However signapple can still apply existing code signatures as it will accept the `.sign` extension. If it is desired, it can be modified to produce signatures with just the `.sign` extension. However I do not think it is necessary to maintain compatibility with the old process.

ACKs for top commit:
  laanwj:
    Code review ACK 2c403279e2f0f7c8c27c56d4e7b0573c59571f0a

Tree-SHA512: 2a0e01e9133f8859b9de26e7e8fe1d2610d2cbdee2845e6008b12c083c7e3622cbb2d9b83c50a269e2c3074ab95914a8225d3cd4108017f58b77a62bf10951e0
2022-08-17 18:30:05 +03:00
UdjinM6
fc01d76fa9
fix(gitian): Fetch tags while cloning the repo via gbuild (#4976)
Should fix version numbers for releases/candidates
2022-08-17 17:37:07 +03:00
UdjinM6
af085cd528
fix: Allow triggers with p2sh after DIP0024 (#4973) 2022-08-17 16:45:04 +03:00
PastaPastaPasta
269fba2819
chore: set _CLIENT_VERSION_IS_RELEASE to true, drop RC (#4959) 2022-08-15 20:33:36 +03:00
UdjinM6
26a22471ff
doc: Add v18.0.0 release notes (#4955)
* doc: archive v0.17.0.3 release notes

* [WIP] doc: Add v18.0 release notes

* Apply suggestions from code review

Co-authored-by: thephez <thephez@users.noreply.github.com>
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>

* Update doc/release-notes.md

Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>

* Update dip0024 hf date

* Update text for network improvements

* Update wallet changes

* fix date for rotation signaling

* more text about multi wallet support

Co-authored-by: thephez <thephez@users.noreply.github.com>

* change where the "now" is in a sentence

* Revert "more text about multi wallet support"

This reverts commit ee2022bae5.

* Update doc/release-notes.md

Co-authored-by: TheLazieR Yip <thelazier@gmail.com>

* Update doc/release-notes.md

Co-authored-by: TheLazieR Yip <thelazier@gmail.com>

* avoid potential dead links

Co-authored-by: thephez <thephez@users.noreply.github.com>

* Update doc/release-notes.md

Co-authored-by: thephez <thephez@users.noreply.github.com>

Co-authored-by: thephez <thephez@users.noreply.github.com>
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
Co-authored-by: QuantumExplorer <quantum@dash.org>
Co-authored-by: TheLazieR Yip <thelazier@gmail.com>
2022-08-15 20:32:15 +03:00
UdjinM6
1900029d4f
Merge pull request #4970 from PastaPastaPasta/v18/backport-final
backport(v18.x): final v18.x backports
2022-08-14 19:18:50 +03:00
PastaPastaPasta
c6cc5d2e90
chore: enable DIP0024 hard fork on mainnet (#4968) 2022-08-14 09:56:32 -05:00
UdjinM6
e0e4d5d327
fix(llmq): Drop quorum members cache on undo (#4964)
This should help with v18 migration for nodes that failed to update in time. Still have to invalidate/reconsider the pre-fork quorum cycle start block to recalculate quorum members but it's better than having to reindex the whole chain.
# Conflicts:
#	src/llmq/utils.cpp
#	src/llmq/utils.h
2022-08-14 09:53:03 -05:00
PastaPastaPasta
8773a21b30
chore: enable DIP0024 hard fork on mainnet (#4968) 2022-08-13 23:25:53 +03:00
UdjinM6
efd96178e4
translations: Add final v18 updates for ar, de and zh_CN (#4962)
NOTE: these files were made by running `./contrib/devtools/update-translations.py` on v18.x branch
2022-08-13 11:32:00 -05:00
PastaPastaPasta
a78cccd355
chore: bump ChainTxData for mainnet and testnet (#4961)
mainnet
```
getchaintxstats
{
  "time": 1660074878,
  "txcount": 43702293,
  "window_final_block_hash": "0000000000000002ee5a0d2caa3f78cd630ece1a12ce74f7a8146eb6689b1b66",
  "window_final_block_height": 1718597,
  "window_block_count": 17280,
  "window_tx_count": 476084,
  "window_interval": 2724994,
  "txrate": 0.174710109453452
}
```

testnet
```
> dash-cli getblockhash 771537
0000028ce7bc90ddaa75703bbe576b8821e470b4b98bbe13be81eb79546e111f
> dash-cli getchaintxstats 17280 0000028ce7bc90ddaa75703bbe576b8821e470b4b98bbe13be81eb79546e111f
{
  "time": 1659215338,
  "txcount": 5579961,
  "window_final_block_hash": "0000028ce7bc90ddaa75703bbe576b8821e470b4b98bbe13be81eb79546e111f",
  "window_final_block_height": 771537,
  "window_block_count": 17280,
  "window_tx_count": 43514,
  "window_interval": 2428572,
  "txrate": 0.01791752519587642
}
```
2022-08-13 11:31:52 -05:00
PastaPastaPasta
28e1d46cbb
chore: bump nMinimumChainWork, defaultAssumeValid and m_assumed_blockchain_size for mainnet and testnet (#4960)
* chore: bump nMinimumChainWork and defaultAssumeValid for mainnet and testnet

* chore: bump m_assumed_blockchain_size for mainnet and testnet
2022-08-13 11:31:43 -05:00
Konstantin Akimov
713c851bbe
Update hard coded seeds for v18.0.0-rc12 (#4953)
Mainnet: 1716101
    Testnet: 774784
2022-08-13 11:31:34 -05:00
UdjinM6
3ac0b4884a
fix(llmq): Drop quorum members cache on undo (#4964)
This should help with v18 migration for nodes that failed to update in time. Still have to invalidate/reconsider the pre-fork quorum cycle start block to recalculate quorum members but it's better than having to reindex the whole chain.
2022-08-13 11:10:32 -05:00
PastaPastaPasta
f83d857e36
Merge pull request #4478 from kittywhiskers/undashify
revert #3036, #2911, #1879, #1432: revert dashification of filenames
2022-08-11 12:34:55 -04:00
UdjinM6
7072ab491d
fix: make linter happy (4926+4952 follow-up) (#4965) 2022-08-11 11:18:49 +03:00
PastaPastaPasta
afbc817220
refactor/chore: update cppcheck to 2.8 with needed refactoring (#4926)
* refactor/chore: update cppcheck to 2.8 with needed refactoring

* use probably invalid index for default

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* trivial: rename skContributions -> m_sk_contributions and skContributions2 -> skContributions

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-08-11 02:05:44 +03:00
Konstantin Akimov
137c4fc84c
Update hard coded seeds for v18.0.0-rc12 (#4953)
Mainnet: 1716101
    Testnet: 774784
2022-08-11 01:57:13 +03:00
UdjinM6
5dd027bb55
doc: Update man pages for v18 (#4963) 2022-08-11 01:56:34 +03:00
UdjinM6
b30d50d835
translations: Add final v18 updates for ar, de and zh_CN (#4962)
NOTE: these files were made by running `./contrib/devtools/update-translations.py` on v18.x branch
2022-08-11 01:56:17 +03:00
PastaPastaPasta
91047566a8
chore: bump ChainTxData for mainnet and testnet (#4961)
mainnet
```
getchaintxstats
{
  "time": 1660074878,
  "txcount": 43702293,
  "window_final_block_hash": "0000000000000002ee5a0d2caa3f78cd630ece1a12ce74f7a8146eb6689b1b66",
  "window_final_block_height": 1718597,
  "window_block_count": 17280,
  "window_tx_count": 476084,
  "window_interval": 2724994,
  "txrate": 0.174710109453452
}
```

testnet
```
> dash-cli getblockhash 771537
0000028ce7bc90ddaa75703bbe576b8821e470b4b98bbe13be81eb79546e111f
> dash-cli getchaintxstats 17280 0000028ce7bc90ddaa75703bbe576b8821e470b4b98bbe13be81eb79546e111f
{
  "time": 1659215338,
  "txcount": 5579961,
  "window_final_block_hash": "0000028ce7bc90ddaa75703bbe576b8821e470b4b98bbe13be81eb79546e111f",
  "window_final_block_height": 771537,
  "window_block_count": 17280,
  "window_tx_count": 43514,
  "window_interval": 2428572,
  "txrate": 0.01791752519587642
}
```
2022-08-11 01:55:59 +03:00
PastaPastaPasta
8a4b9c66a9
chore: bump nMinimumChainWork, defaultAssumeValid and m_assumed_blockchain_size for mainnet and testnet (#4960)
* chore: bump nMinimumChainWork and defaultAssumeValid for mainnet and testnet

* chore: bump m_assumed_blockchain_size for mainnet and testnet
2022-08-11 01:55:33 +03:00
Kittywhiskers Van Gogh
fc18536053 trivial: revert dashification of header guards 2022-08-09 14:16:29 +05:30
Kittywhiskers Van Gogh
887b4324d3 trivial: revert dashification of source and header filenames 2022-08-09 14:16:29 +05:30
Kittywhiskers Van Gogh
f02085e988 revert dash#1432: Rename consensus source library and API
It's a shared library, so we should keep its name and API 
distinguishable from Bitcoin's and avoid pkgconfig confusion

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-08-09 14:16:28 +05:30
Kittywhiskers Van Gogh
c587212f8c partial revert dash#2911: s/dash-config/bitcoin-config/g 2022-08-09 14:16:28 +05:30
Kittywhiskers Van Gogh
ece4e1ee87 partial revert dash#3036: s/libbitcoin/libdash/g 2022-08-09 14:16:28 +05:30
UdjinM6
d47af2c4bf
feat/fix: ScanQuorums improvements (#4945)
* feat: Revive quorum scan caching

* refactor: split quorumsCacheCs mutex into two

* fix: Avoid extra work in quorum scanning

Non-rotation quorums do not become rotation ones (anymore), use `useRotation` to pick the right method only. This brings CPU load for `d-isman` thread (while being idle) from ~5% down to ~1% on testnet for me.

* apply suggestions
2022-08-08 19:09:21 +03:00
UdjinM6
63d9c6abf7
fix: 4946 follow-up (#4957) 2022-08-08 19:06:10 +03:00
Konstantin Akimov
ae051bb6e0
Merge #17260: Split some CWallet functions into new LegacyScriptPubKeyMan (#4938)
* Move wallet enums to walletutil.h

* MOVEONLY: Move key handling code out of wallet to keyman file

Start moving wallet and ismine code to scriptpubkeyman.h, scriptpubkeyman.cpp

The easiest way to review this commit is to run:

   git log -p -n1 --color-moved=dimmed_zebra

And check that everything is a move (other than includes and copyrights comments).

This commit is move-only and doesn't change code or affect behavior.

* Refactor: Split up CWallet and LegacyScriptPubKeyMan and classes

This moves CWallet members and methods dealing with keys to a new
LegacyScriptPubKeyMan class, and updates calling code to reference the new
class instead of CWallet.

Most of the changes are simple text replacements and variable substitutions
easily verified with:

    git log -p -n1 -U0 --word-diff-regex=.

The only nontrivial chunk of code added is the new LegacyScriptPubKeyMan class
declaration, but this code isn't new and is just selectively copied and moved
from the previous CWallet class declaration. This can be verified with:

    git log -p -n1 --color-moved=dimmed_zebra src/wallet/scriptpubkeyman.h src/wallet/wallet.h

or

    git diff HEAD~1:src/wallet/wallet.h HEAD:src/wallet/scriptpubkeyman.h

This commit does not change behavior.

* Renamed classes in scriptpubkeyman

* Fixes for conflicts, compilation and linkage errors due to previous commits

* Reordered methods in scriptpubkeyman to make further backports easier

* Reordered methods in scriptpubkeyman to make further backports easier (part II)

* Remove HDChain copy from SigningProvider class

* fixes/suggestions

Co-authored-by: Andrew Chow <achow101-github@achow101.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-08-08 11:05:21 -05:00