32134 Commits

Author SHA1 Message Date
MarcoFalke
0ee9a00f90
Merge bitcoin/bitcoin#23652: doc: Document optional RPC result fields
fab6c43b40773555b3f919c1403b8f3f48e92d5c doc: Document optional result fields in validateaddress (MarcoFalke)
faee2656a8de3979ec7392d32dbd3a9a5776befb doc: Document optional result fields in getpeerinfo (MarcoFalke)

Pull request description:

ACKs for top commit:
  shaavan:
    ACK fab6c43b40773555b3f919c1403b8f3f48e92d5c

Tree-SHA512: 78458d0c4deb9253fbfe37fa5736a7db14eb0478bcc4adeba10ba6945e83d8eac92048293f50c054ea612609939151b4a2e1226c06f6067901f3d58c127c7e18
2021-12-03 10:14:05 +01:00
MarcoFalke
8b4d53e4d6
Merge bitcoin/bitcoin#23647: MOVEONLY: Move wallet backup and encryption RPCs out of rpcwallet
5b2167fd30ea4384b93a0226e9fbef4650aa9438 MOVEONLY: Move LoadWalletHelper to wallet/rpc/util (Samuel Dobson)
8b73640152dbe7201e740019f4c2554e9ba8cc99 MOVEONLY: Move wallet encryption RPCs to encrypt.cpp (Samuel Dobson)
803b30502b8134ee6edd5bdda3e4e3e22e76b393 MOVEONLY: Move backupwallet and restorewallet to rpc/backup.cpp (Samuel Dobson)
3a9d39324e71ddf1682db5b248eb05758bed0f52 MOVEONLY: Move rpcdump.cpp to wallet/rpc/backup.cpp (Samuel Dobson)

Pull request description:

  As part of an effort to split rpcwallet as per #23622, this moves `rpcdump.cpp` into the new wallet/rpc directory as well as moving backup and encryption RPCs out of rpcwallet.

ACKs for top commit:
  MarcoFalke:
    ACK 5b2167fd30ea4384b93a0226e9fbef4650aa9438 🎭

Tree-SHA512: aa8054767927fa56b5c51edc91a2d94fe9f1cca198e1b2cac1ebd464f6956a89c782a7b6de4409361adca6ca1377272b6e2af660b737c4849ee323f899945ad9
2021-12-03 09:17:15 +01:00
Hennadii Stepanov
c0a1c3ca08
ci: Bump Qt to 5.15.2 in the native Windows task 2021-12-03 14:07:12 +08:00
Hennadii Stepanov
06aca8aacb
doc: Update build_msvc/README.md for Qt 5.15.2 2021-12-03 14:07:12 +08:00
Hennadii Stepanov
1732eaba4f
build, qt: Fix regression in rendering on macOS Big Sur 2021-12-03 14:07:12 +08:00
fanquake
c870027cc2
build: qt 5.15.2 2021-12-03 14:07:12 +08:00
fanquake
904ba2aa40
build: add libxcb_util_wm 0.4.1
Required for xcb_icccm.
2021-12-03 14:07:12 +08:00
fanquake
0e2ca89a78
build: add libxcb_util_image 0.4.0 2021-12-03 14:07:11 +08:00
fanquake
36af9b6c94
build: add libxcb_util_keysyms 0.4.0 2021-12-03 14:07:11 +08:00
fanquake
b3cfbf5af2
build: add libxcb_util_render 0.3.9 2021-12-03 14:07:11 +08:00
fanquake
e545b56dc5
build: add libxcb_util 0.4.0 2021-12-03 14:07:11 +08:00
fanquake
937b36b5f0
build: libxcb 1.14
Minimum required libxcb to build qt 5.15.x is 1.11.

https://codereview.qt.nokia.com/c/qt/qtbase/+/253905

Some plugins have been re-enabled as they are required by Qt.
2021-12-03 14:07:10 +08:00
fanquake
01544dd78c
build: freetype 2.11.0
Co-authored-by: mammix2 <mammix2@hotmail.com>
2021-12-03 14:07:10 +08:00
fanquake
10ac182f4c
build: expat 2.4.1 2021-12-03 14:07:10 +08:00
fanquake
d3d547c545
build: xcb_proto 1.14.1 2021-12-03 14:07:10 +08:00
fanquake
fc65127244
build: libXau 1.0.9 2021-12-03 14:07:10 +08:00
fanquake
0697557321
build: xproto 7.0.31 2021-12-03 14:07:09 +08:00
fanquake
927a9b0777
Merge bitcoin/bitcoin#23659: test: fix: remove outdated TestNode.generate calls
4e1cb904ba6777ea70edbbba42ebc803c9d1fbc9 test: fix: remove outdated TestNode.generate calls (James O'Beirne)

Pull request description:

  Currently failing on CI. After this change the test itself still fails,
  but at least it's apparently for a non-incidental reason.

ACKs for top commit:
  meshcollider:
    ACK 4e1cb904ba6777ea70edbbba42ebc803c9d1fbc9
  theStack:
    Tested ACK 4e1cb904ba6777ea70edbbba42ebc803c9d1fbc9

Tree-SHA512: 5e7059d334d571ca92f250d298292ce1653da8257cbfb218d28cc9c5816c21c718c36482da31fcaf78e0714cc9b67ff04b91405e820accaf4d8321a354af9441
2021-12-03 12:37:58 +08:00
fanquake
ffe414bd9a
Merge bitcoin/bitcoin#23649: circular dependency followups
ddd74ff65c471c5c25815ac0643d16ea0d51f58f clean up txmempool includes (glozow)
c4efc4db5484910ac33ba41aa76f4e23639d6f33 change TestLockPointValidity to take a const reference (glozow)
b01784f0270dc20f8076ea4e46203c97b40b93ef remove unnecessary casts and use braced initialization (glozow)

Pull request description:

  Followups from #22677 + clean up `TestLockPointValidity`

ACKs for top commit:
  theStack:
    Code-review ACK ddd74ff65c471c5c25815ac0643d16ea0d51f58f

Tree-SHA512: 0f7f26535b7301e2fb379e676310bdc7cfb2c5e232a6657f41dc6d3bc91583ec452eb2359ad2f2416ea12dd856f7fab3fa507a391ccf80f14de96da989281d96
2021-12-03 12:20:46 +08:00
Samuel Dobson
5b2167fd30 MOVEONLY: Move LoadWalletHelper to wallet/rpc/util 2021-12-03 13:53:12 +13:00
Samuel Dobson
8b73640152 MOVEONLY: Move wallet encryption RPCs to encrypt.cpp 2021-12-03 12:34:01 +13:00
Samuel Dobson
803b30502b MOVEONLY: Move backupwallet and restorewallet to rpc/backup.cpp 2021-12-03 12:33:33 +13:00
Samuel Dobson
3a9d39324e MOVEONLY: Move rpcdump.cpp to wallet/rpc/backup.cpp 2021-12-03 12:33:33 +13:00
Hennadii Stepanov
a56a104938
qt: Handle Android back key in the Node window 2021-12-03 01:03:30 +02:00
Hennadii Stepanov
f045f98717
qt, android: Add GUIUtil::IsEscapeOrBack helper 2021-12-03 01:03:30 +02:00
James O'Beirne
4e1cb904ba
test: fix: remove outdated TestNode.generate calls
Currently failing on CI. After this change the test itself still fails,
but at least it's apparently for a non-incidental reason.
2021-12-02 17:07:08 -05:00
Florian Baumgartl
b062da0090
contrib: add check for wget command in install_db4.sh 2021-12-02 22:02:40 +01:00
Pieter Wuille
2c35a93b3c Generalize/simplify VectorReader into SpanReader 2021-12-02 14:47:17 -05:00
MarcoFalke
0b30bdd519
Merge bitcoin/bitcoin#22014: refactor: Make m_cs_fee_estimator non-recursive
8c277b19c8f262e550cffe263e6d910b687ac882 refactor: Make m_cs_fee_estimator non-recursive (Hennadii Stepanov)
5ee5b696b588695ff78aaac08d5d85154f1953cf refactor: Add non-thread-safe CBlockPolicyEstimator::_removeTx helper (Hennadii Stepanov)
5c3033d45e5ec15499ce7a0222ffa0210a0f66bc Add thread safety annotations to CBlockPolicyEstimator public functions (Hennadii Stepanov)

Pull request description:

  This PR eliminates the only place that `m_cs_fee_estimator` is recursively locked by refactoring out `_removeTx` member function.

  Related to #19303.

ACKs for top commit:
  theStack:
    Code-review ACK 8c277b19c8f262e550cffe263e6d910b687ac882
  amadeuszpawlik:
    ACK 8c277b19c8f262e550cffe263e6d910b687ac882 reviewed, built and ran tests

Tree-SHA512: 65b0b59460d3d5fadf7e75e916b2898b0dcfafdf5b278ef8c3975660f67c9f88ae4b937944313bd36d7513a7a53e1e5859aaf4a6deb4a1aea089936b101635a1
2021-12-02 19:54:21 +01:00
W. J. van der Laan
bce58bbb3d
Merge bitcoin/bitcoin#22929: wallet: Automatically add receiving destinations to the address book
3d71d16d1eb4173c70d4c294559fc2365e189856 test: listtranscations with externally generated addresses (S3RK)
d04566415e16ae685af066384f346dff522c068f Add to spends only transcations from me (S3RK)
9f3a622b1cea37e452560f2f82d8e82d3b48a73a Automatically add labels to detected receiving addresses (S3RK)
c1b99c088c54eb101c0a28a67237965576ccf5ad Return used destinations from ScriptPubKeyMan::MarkUnusedAddresses (S3RK)
03840c20640685295a65ed8c82456e877f668b9b Add CWallet::IsInternalScriptPubKeyMan (S3RK)
456e350926adde5dabdbc85fc0f017fb29bdadb3 wallet: resolve ambiguity of two ScriptPubKey managers providing same script (S3RK)

Pull request description:

  This PR fixes certain use-cases when **send-to-self** transactions are missing from `listtransactions` output.

  1. When a receiving address is generated externally to the wallet
  (e.g. same wallet running on two nodes, or by 3rd party from xpub)
  2. When restoring backup with lost metadata, but keypool gap is not exceeded yet

  When the block is connected or tx added to mempool we already mark used keys. This PR extends this logic to determine whether the destination is a receiving one and if yes add it to the address book with empty label.

  Works both for legacy and descriptors wallets.
  - For legacy it uses the internal flag from the keypool entry. Caveat: because we don't know which script type would be used we add all possible destinations for such keys.
  - For descriptor wallets it uses internal flag for the script pub key manager. Caveat: it only works for active descriptors.

  fixes #19856
  fixes #20293

ACKs for top commit:
  laanwj:
    Code review ACK 3d71d16d1eb4173c70d4c294559fc2365e189856

Tree-SHA512: 03fafd5548ead0c4ffe9ebcc9eb2849f1d2fa7270fda4166419b86877d4e57dcf04460e465fbb9c90b42031f3c05d1b83f1b67a9f82c2a42980825ed1e7b52e6
2021-12-02 19:37:33 +01:00
MarcoFalke
fab6c43b40
doc: Document optional result fields in validateaddress
Can be reviewed with --ignore-all-space --word-diff-regex=.
2021-12-02 19:22:35 +01:00
MarcoFalke
fa52a86fd3
fuzz: Rework rpc fuzz target 2021-12-02 19:08:43 +01:00
MarcoFalke
faee2656a8
doc: Document optional result fields in getpeerinfo
Can be reviewed with --ignore-all-space --word-diff-regex=.
2021-12-02 17:38:18 +01:00
MarcoFalke
fa3942fc4c
Remove GetSpendHeight
It is unclear what the goal of the helper is, as the caller already
knows the spend height before calling the helper.

Also, in case the coins view is corrupted, LookupBlockIndex will return
nullptr. Dereferencing a nullptr is UB.

Fix both issues by removing it. Also, add a sanity check, which aborts
if the coins view is corrupted.
2021-12-02 15:59:53 +01:00
glozow
ddd74ff65c clean up txmempool includes 2021-12-02 14:49:19 +00:00
glozow
c4efc4db54 change TestLockPointValidity to take a const reference
The lockpoints are not changed in this function.
There is no reason to pass a pointer.
2021-12-02 14:45:18 +00:00
MarcoFalke
26a1147ce5
Merge bitcoin/bitcoin#23636: Remove GetAdjustedTime from init.cpp
fa551b3bdd380bcaa8fa929b378b3b6c81a6f65c Remove GetAdjustedTime from init.cpp (MarcoFalke)
fa815f8473c56df66302340c5961d18226a60e6f Replace addrman.h include with forward decl in net.h (MarcoFalke)

Pull request description:

  It seems confusing to call `GetAdjustedTime` there, because no offset could have been retrieved from the network at this point. Even if connman was started, `timedata` needs at least 5 peer connections to calculate an offset.

  Fix the confusion by replacing `GetAdjustedTime` with `GetTime`, which does not change behavior.

  Also:
  * Replace magic number with `MAX_FUTURE_BLOCK_TIME` to clarify the context
  * Add test, which passes both on current master and this pull request
  * An unrelated refactoring commit, happy to drop

ACKs for top commit:
  dongcarl:
    Code Review ACK fa551b3bdd380bcaa8fa929b378b3b6c81a6f65c, noticed the exact same thing here: e073634c37
  mzumsande:
    Code Review ACK fa551b3bdd380bcaa8fa929b378b3b6c81a6f65c
  jnewbery:
    Code review ACK fa551b3bdd380bcaa8fa929b378b3b6c81a6f65c
  shaavan:
    ACK fa551b3bdd380bcaa8fa929b378b3b6c81a6f65c
  theStack:
    Code-review ACK fa551b3bdd380bcaa8fa929b378b3b6c81a6f65c

Tree-SHA512: 15807a0e943e3e8d8c5250c8f6d7b56afb26002b1e290bf93636a2c747f27e78f01f1de04ce1a83d6339e27284c69c43e077a8467545c4078746f4c1ecb1164d
2021-12-02 15:24:55 +01:00
Sebastian Falbesoner
1ed5681407 rpc: add missing scantxoutset examples 2021-12-02 14:30:29 +01:00
MarcoFalke
0bd7ca9a03
Merge bitcoin/bitcoin#23642: refactor: Call type-solver earlier in decodescript
33330702081f67cb05fd86e00b252f6355249513 refactor: Call type-solver earlier in decodescript (MarcoFalke)
fab0d998f4bf0f3f09afa51845d91408dd484408 style: Remove whitespace (MarcoFalke)

Pull request description:

  The current logic is a bit confusing. First creating the `UniValue` return dict, then parsing it again to get the type as `std::string`.

  Clean this up by using a strong type `TxoutType`. Also, remove whitespace.

ACKs for top commit:
  shaavan:
    ACK 33330702081f67cb05fd86e00b252f6355249513
  theStack:
    Code-review ACK 33330702081f67cb05fd86e00b252f6355249513

Tree-SHA512: 49db7bc614d2491cd3ec0177d21ad1e9924dbece1eb5635290cd7fd18cb30adf4711b891daf522e7c4f6baab3033b66393bbfcd1d4726f24f90a433124f925d6
2021-12-02 13:56:57 +01:00
glozow
b01784f027 remove unnecessary casts and use braced initialization 2021-12-02 12:04:17 +00:00
W. J. van der Laan
6acda4b00b
Merge bitcoin/bitcoin#23155: rpc: various fixups for dumptxoutset
ffd09281fe26446fcefa0627c220a52706e35227 rpc: various fixups for dumptxoutset (James O'Beirne)

Pull request description:

  This is part of the [assumeutxo project](https://github.com/bitcoin/bitcoin/projects/11) (parent PR: #15606)

  ---

  A few fixes to make this RPC actually useful when generating snapshots.

  - Generate an assumeutxo hash and display it (sort of a bugfix)
  - Add nchaintx to output (necessary for use in chainparams entry)
  - Add path of serialized UTXO file to output

ACKs for top commit:
  laanwj:
    Code review ACK ffd09281fe26446fcefa0627c220a52706e35227

Tree-SHA512: b0b5fd5138dea0e21258b1b18ab75bf3fd1628522cc1dbafa81af9cb9fa96562a1c39124fdb31057f256bfc560f462f907e9fe5e209b577b3f57afae2b7be826
2021-12-02 10:35:02 +01:00
fanquake
282cc0cda7
Merge bitcoin/bitcoin#23626: refactor: Fix implicit-signed-integer-truncation in cuckoocache.h
fa7da227daf8558be14f226c4366583fdc59ba10 refactor: Fix implicit-signed-integer-truncation in cuckoocache.h (MarcoFalke)

Pull request description:

  Using a file-wide suppression for this implicit truncation has several issues:

  * It is file-wide, thus suppressing any other (newly introduced) issues
  * The file doesn't compile with `-Wimplicit-int-conversion`

  Fix both issues by making the truncation explicit.

ACKs for top commit:
  fanquake:
    ACK fa7da227daf8558be14f226c4366583fdc59ba10

Tree-SHA512: bf2076ed94c4e80d0d29ff883080edc7a73144c73d6d3e872ec87966177ee3160f4760fc4c774aaa6fb591f4acee450a24b0f7c82291e0bef96582a6d134046e
2021-12-02 16:25:54 +08:00
MarcoFalke
af1067c4b7
Merge bitcoin/bitcoin#23640: MOVEONLY: Move helper functions from rpcwallet to wallet/rpc/util
ff945e553affbb7e25da1257a0dd47e413ec5164 MOVEONLY: Move utility functions from rpcwallet to wallet/rpc/util (Samuel Dobson)
7b04a064f6e8ee9d93e5a5ad54dab20b769083f2 Introduce wallet/rpc/util (Samuel Dobson)

Pull request description:

  This is part one of multiple to split up rpcwallet.cpp into smaller, more logical units.

  See #23622 for context and overall plan. I'll open PRs in stages to hopefully minimise conflicts.

  Can be reviewed with `--color-moved=dimmed-zebra`

  The end goal can be seen here: https://github.com/meshcollider/bitcoin/tree/202111_split_walletrpc

ACKs for top commit:
  MarcoFalke:
    nice, ACK ff945e553affbb7e25da1257a0dd47e413ec5164 🐰
  shaavan:
    ACK ff945e553affbb7e25da1257a0dd47e413ec5164

Tree-SHA512: 6e3d1de6db770fe2fca540c8c4f30183ab8258c26e3a1fb46937714d28818a52933eafbfcafe2995f6a6e2551a3f3dd3ec93363b81de7912c0d81f5749d1c86d
2021-12-02 08:38:32 +01:00
MarcoFalke
a377510e3a
Merge bitcoin/bitcoin#23643: rpc: remove info about mallocinfo needing glibc 2.10+
9a09d307e9bd81ed218dd560d3eac7565f1f7a2f rpc: remove info about mallocinfo needing glibc 2.10+ (fanquake)

Pull request description:

  We require glibc 2.18+.

ACKs for top commit:
  jarolrod:
    ACK 9a09d307e9bd81ed218dd560d3eac7565f1f7a2f
  shaavan:
    ACK 9a09d307e9bd81ed218dd560d3eac7565f1f7a2f

Tree-SHA512: 61312e48fda4cb4c788d44be0f0c626e753b0a18a8f36bca813ce838f8e619e73c00306bb716e9863a077c09b5bcdec7dec134d75c5ace719a5c0a05cf75ed8a
2021-12-02 08:31:51 +01:00
Sjors Provoost
dce8c4c381
rpc: getblockfrompeer
Co-authored-by: John Newbery <john@johnnewbery.com>
2021-12-02 13:16:18 +07:00
Sjors Provoost
b884ababc2
rpc: move Ensure* helpers to server_util.h 2021-12-02 13:15:32 +07:00
fanquake
df562d698a
Merge bitcoin/bitcoin#23637: miner: Remove uncompiled MTP code
fa46ac4d9d6dc99572c44c42adc9bc3f41d701d4 miner: Remove uncompiled MTP code (MarcoFalke)
fa6b7adf965e68ec6a46d867966b1d44af98e908 style: Add {} to if-bodies in node/miner (MarcoFalke)

Pull request description:

  This removes uncompiled code.

  Can be checked by inserting `static_assert(STANDARD_LOCKTIME_VERIFY_FLAGS & LOCKTIME_MEDIAN_TIME_PAST)` and compiling or by reading the source code.

  Even if the code was compiled, it would be unsafe to execute, since it is not allowed to include transactions that are locked until some time after the current MTP.

  Also, rename the member to cause explicit merge conflicts in case there is a patch out there referencing the variable.

ACKs for top commit:
  shaavan:
    ACK fa46ac4d9d6dc99572c44c42adc9bc3f41d701d4
  theStack:
    Code-review ACK fa46ac4d9d6dc99572c44c42adc9bc3f41d701d4

Tree-SHA512: 0288f45918996b58d0c0060773aa3cb15c828a649439f3d589c5d6b4854d6da1d8c2ea11d5ca06c654532453ab5ce1892de7ca820e284e96e78b959ef87cac5c
2021-12-02 10:09:42 +08:00
MarcoFalke
4633199cc8
Merge bitcoin/bitcoin#22677: cut the validation <-> txmempool circular dependency 2/2
a64078e38563ef3ac5e5ec20c07569441c87eeee Break validation <-> txmempool circular dependency (glozow)
64e4963c635ec3a73a5fa3f32f6ec08e70609f60 [mempool] always assert coin spent (glozow)
bb9078ed51159fa162484f16993313ed6cf980e3 [refactor] put finality and maturity checking into a lambda (glozow)
bedf246f1e2497a3641093c6e8fa11fb34dddac4 [mempool] only update lockpoints for non-removed entries (glozow)
1b3a11e126b258fba975ed7c452221608f2c5472 MOVEONLY: TestLockPointValidity to txmempool (glozow)

Pull request description:

  Remove 2 circular dependencies: validation - txmempool and validation - policy/rbf - txmempool

  Validation should depend on txmempool (e.g. `CChainstateManager` has a mempool and we often need to know what's in our mempool to validate transactions), but txmempool is a data structure that shouldn't really need to know about chain state.

  - Changes `removeForReorg()` to be parameterized by a callable that returns true/false (i.e. whether the transaction should be removed due to being now immature or nonfinal) instead of a `CChainState`. The mempool really shouldn't need to know about coinbase maturity or lockpoints, it just needs to know which entries to remove.

ACKs for top commit:
  laanwj:
    Code review ACK a64078e38563ef3ac5e5ec20c07569441c87eeee
  mjdietzx:
    reACK a64078e38563ef3ac5e5ec20c07569441c87eeee
  theStack:
    re-ACK a64078e38563ef3ac5e5ec20c07569441c87eeee

Tree-SHA512: f75995200569c09dfb8ddc09729da66ddb32167ff1e8a7e72f105ec062d2d6a9a390e6b4a2a115e7ad8ad3525f891ee1503f3cd2bed11773abcaf7c3230b1136
2021-12-01 17:56:08 +01:00
MarcoFalke
1c06e1a7b6
Merge bitcoin/bitcoin#23437: refactor: AcceptToMemoryPool
123f5de8265af07ff1c95ed8078085af6cb589cb Remove calls to global Params() in tx_pool test (lsilva01)
9360778d6e12fd16d44b2d9162628e5036e50dad Remove AcceptToMemoryPoolWithTime (lsilva01)

Pull request description:

  This PR refactors AcceptToMemoryPool.

  . Remove `AcceptToMemoryPoolWithTime` (after #23173, this function is no longer needed).
  . Remove the `CChainParams chainparams` parameter from ATMP as they can be inferred from the current chain state.
  . Update the `tx_pool` test with new function signature.

ACKs for top commit:
  jnewbery:
    reACK 123f5de8265af07ff1c95ed8078085af6cb589cb
  glozow:
    light code review ACK 123f5de8265af07ff1c95ed8078085af6cb589cb
  theStack:
    re-ACK 123f5de8265af07ff1c95ed8078085af6cb589cb

Tree-SHA512: b672d9f091f5fcb4d163c0a443aa469b2ce6f37201136803201c620c3fa329ffb41abd50c5b528787fd1c47e8e09af5ec20ddaa0a4235352c9c619e5691dddb6
2021-12-01 17:44:25 +01:00
MarcoFalke
fa37e798b2
wallet: Replace confusing getAdjustedTime() with GetTime() 2021-12-01 16:26:11 +01:00