Commit Graph

1431 Commits

Author SHA1 Message Date
MarcoFalke
3c90d26bab Merge #15777: [docs] Add doxygen comments for keypool classes
f1a77b0c51 [docs] Add doxygen comment for CReserveKey (John Newbery)
37796b2dd4 [docs] Add doxygen comment for CKeyPool (John Newbery)
ef2d515af3 [wallet] move-only: move CReserveKey to be next to CKeyPool (John Newbery)

Pull request description:

  Docs/move-only

  Adds doxygen comments for the CKeyPool and CReserveKey objects. The way these work is pretty confusing and it's easy to overlook details (eg https://github.com/bitcoin/bitcoin/pull/15557#discussion_r271956393).

  These are on the verbose side, but I think too much commenting is better than not enough. Happy to take feedback on what's an appropriate level.

ACKs for commit f1a77b:
  jonatack:
    Thanks, John. Re-ACK f1a77b0c5176306ca9f6f30211e32d3502ed4281, doc-only changes with respect to previous review.
  jb55:
    ACK f1a77b0c5176306ca9f6f30211e32d3502ed4281

Tree-SHA512: 8bc97c7029cd2e8d9bfd2d2144eeff73474c71eda5a9d10817e1578ca0b70da677252037d83143faaff1808e2193408a21a8a89d36049eac77fd313990f0b67b
2022-05-17 12:57:09 -04:00
PastaPastaPasta
1d39df64de
Merge pull request #4765 from kittywhiskers/bdb2
backport: merge bitcoin#16963...19457: berkeley db refactoring (part 2)
2022-05-17 11:00:19 -05:00
UdjinM6
56898d2085
feat(rpc/wallet): allow skipping/forcing blockchain rescan on upgradetohd (#4822)
* wallet: allow skipping/forcing blockchain rescan on upgradetohd

* tests: test new use cases in wallet_upgradetohd.py

* add release notes
2022-05-17 01:51:54 +03:00
Kittywhiskers Van Gogh
c7f33f3d06 merge bitcoin#19261: Drop ::HasWallets() 2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
b87d125f54 merge bitcoin#19300: Handle concurrent wallet loading 2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
029cbfc261 merge bitcoin#16963: Fix unique_ptr usage in boost::signals2 2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
01d00f3227 merge bitcoin#19671: Remove -zapwallettxes 2022-05-13 18:06:06 +05:30
Kittywhiskers Van Gogh
b3be463cf1 merge bitcoin#19457: Cleanup wallettool salvage and walletdb extraneous declarations 2022-05-13 18:04:32 +05:30
Kittywhiskers Van Gogh
edc27a8404 merge bitcoin#19335: Cleanup and separate BerkeleyDatabase and BerkeleyBatch 2022-05-13 18:04:31 +05:30
Kittywhiskers Van Gogh
6267fa8427 partial bitcoin#18923: Never schedule MaybeCompactWalletDB when -flushwallet is off
Excludes faf8401c195f52470d1ca6e2c94cb3820e57ee41 and fa28a618972911239a119248ab1194702a5c36d8
2022-05-13 18:04:31 +05:30
Kittywhiskers Van Gogh
71bb9def32 merge bitcoin#16923: Handle duplicate fileid exception 2022-05-13 18:04:31 +05:30
Kittywhiskers Van Gogh
e9e5ba5daf merge bitcoin#19085: clean up PeriodicFlush() 2022-05-13 18:04:31 +05:30
Munkybooty
e95655cd9f
refactor(rpc): Mechanical/Manual RPC backports (#4734)
* rpc: switch to using RPCHelpMan.Check()

* rpc: Auto-format RPCResult

* rpc: Auto-format RPCResult (rpcdump.cpp)

* rpc: Auto-format RPCResult (rpcwallet.cpp)

* Fix Description String method and typo

* Fix code breaking semicolons

* Attempt to fix misc build errors

* Fixes for get wallet info

* fixes and missing parts of 16240, 17809, 19386

TODO: convert `RPCResults{}`

* Revert "rpc: restore legacy RPCResult support"

This reverts commit c014b7df92.

* revert e401d6e1aa

to fix test crashes

* adjust dash subcommands to be compatible

* trivial fixes rpc: Auto-format RPCResult

* fix `quorum rotationinfo`

* various fixes

Co-authored-by: Karl-Johan Alm <karljohan-alm@garage.co.jp>
Co-authored-by: MarcoFalke <falke.marco@gmail.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-05-12 15:29:17 -05:00
UdjinM6
eccceaebb1
wallet: Fix wallet autobackup on start (#4831)
19324 follow-up (merged via 4714) - `AutoBackupWallet()` call was unreachable.

NOTE: It's safe to call it after `Verify()` because 18918 backport moved salvage logic out of `Verify*()`.
2022-05-12 23:11:50 +03:00
MarcoFalke
8cac4ed930
Merge #15492: [rpc] remove deprecated generate method
07cae5287c [wallet] remove unused GetScriptForMining (Sjors Provoost)
8bb3e4c487 [rpc] remove deprecated generate method (Sjors Provoost)

Pull request description:

  As announced in v0.18, the wallet generate rpc method is deprecated and will be fully removed in v0.19.

  Clients should transition to using the node rpc method `generatetoaddress`.

Tree-SHA512: 9e5e913b59f3e18440b2b7b356124c7b87ad19f81a1ab6ada06a6c396b84e734895465f569296f1ba8c12abf74863bab5fd77765c9e806c239713aa83a59485f
2022-05-01 20:52:10 +03:00
MarcoFalke
e4f621fd57
merge #14468: [wallet] Deprecate generate RPC method
ab9aca2bdf [rpc] add 'getnewaddress' hint to 'generatetoaddress' help text. (John Newbery)
c9f02955b2 [wallet] Deprecate the generate RPC method (John Newbery)
aab81720de [tests] Add generate method to TestNode (John Newbery)
c269209336 [tests] Small fixups before deprecating generate (John Newbery)

Pull request description:

  Deprecates the `generate` RPC method.

  For concept discussion, see #14299.

  Fixes #14299.

Tree-SHA512: 16a3b8b742932e4f0476c06b23de07a34d9d215b41d9272c1c9d1e39966b0c2406f17c5ab3cc568947620c08171ebe5eb74fd7ed4b62151363e305ee2937cc80
2022-05-01 20:51:43 +03:00
UdjinM6
29cdb4adb0
wallet: fix metadata updates on HD derivation (#4819)
* wallet: Use temporary structure to update metadata correctly while generating new hd keys

* wallet: Make sure to never update an already existing key_origin while deriving hd keys
2022-04-30 23:33:45 +03:00
PastaPastaPasta
c2ecc0c721
Merge pull request #4731 from vijaydasmp/bp2001
Merge bitcoin#17251,17250,17279,17299,17306,15756,17203,17719
2022-04-20 14:08:24 -05:00
Kittywhiskers Van Gogh
978fb0b315 merge bitcoin#17781: Remove mempool global from miner 2022-04-20 00:25:14 +05:30
Kittywhiskers Van Gogh
b3b636463e merge bitcoin#16839: Replace Connman and BanMan globals with NodeContext local
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-04-20 00:22:35 +05:30
Kittywhiskers Van Gogh
12d6597aa7 Pass CConnman to function in place for global pointer access
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-04-20 00:21:04 +05:30
Kittywhiskers Van Gogh
b735422a83 merge bitcoin#15931: Remove GetDepthInMainChain dependency on locked chain interface
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-04-20 00:20:30 +05:30
Kittywhiskers Van Gogh
ea3eefd30c merge bitcoin#16624: encapsulate transactions state
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-04-20 00:20:30 +05:30
Kittywhiskers Van Gogh
1d02804ce2 merge bitcoin#15842: replace isPotentialtip/waitForNotifications by higher method 2022-04-20 00:20:30 +05:30
Kittywhiskers Van Gogh
2b02a1b03e partial bitcoin#15639: Drop libbitcoin_server.a dependency 2022-04-20 00:20:30 +05:30
UdjinM6
89f606a927
trivial: add some missing dashifications (#4772) 2022-04-19 09:09:42 +03:00
Vijay Das Manikpuri
94c5db49ef
Merge #17203: wallet: Remove unused GetLabelName 2022-04-15 13:15:24 +05:30
UdjinM6
856811e1a1
Merge pull request #4759 from PastaPastaPasta/develop-trivial-2022-04-07
trivial backports 2022 04 07
2022-04-13 15:04:16 +03:00
UdjinM6
0ea2d5aaf5
refactor: Drop args that were deprecated long time ago (#4762)
Trying to use them results in "Error parsing command line arguments: Invalid parameter" error. Should either add them to hidden_args or drop them. The latter seems like a better option since no one should be using them by now anyway.
2022-04-12 20:56:45 +03:00
Samuel Dobson
b1d3020568 Merge bitcoin/bitcoin#23254: doc: Fix typo and grammar
ffd11ea87640c8a3d83b6f83ac18e65234fc6002 Fix typo and grammar (Heebs)

Pull request description:

  Fix typo and grammar in the coin selection algorithm's description.

ACKs for top commit:
  meshcollider:
    ACK ffd11ea87640c8a3d83b6f83ac18e65234fc6002

Tree-SHA512: bba07c2efd5140fb3e021618739d70aaa761bbc274afb8158809492b0606773c217e42e58e58b18a2454b9c45ebc883ebece17cdc467ac60e3d3140d7a979db7
2022-04-11 09:41:11 -07:00
UdjinM6
e425a911a7 tweak 18922
should avoiid changing translated strings when possible
should NOT translate debug.log messsages
2022-04-08 14:12:56 -05:00
UdjinM6
e67fde03aa 16745+18699 followup 2022-04-08 14:12:56 -05:00
Kittywhiskers Van Gogh
bc85d2d299 merge bitcoin#19176: Error message bilingual_str consistency 2022-04-07 11:28:43 -05:00
MarcoFalke
6e93df5db6 Merge #18907: walletdb: Don't remove database transaction logs and instead error
d0ea9bab2804928c9f40def61fd99064d2d8f9b8 walletdb: Don't remove database transaction logs and instead error (Andrew Chow)

Pull request description:

  Instead of removing the database transaction logs and retrying the
  wallet loading, just return an error message to the user. Additionally,
  speciically for DB_RUNRECOVERY, notify the user that this could be due
  to different BDB versions.

  Kind of implements the suggestion from https://github.com/bitcoin/bitcoin/pull/18870#discussion_r421647964

ACKs for top commit:
  Sjors:
    re-utACK d0ea9bab2804928c9f40def61fd99064d2d8f9b8
  ryanofsky:
    Code review ACK d0ea9bab2804928c9f40def61fd99064d2d8f9b8. Only changes since last review are rebase and expanding error and commit messages.

Tree-SHA512: f6e67dc70f58188742a5c8af7cdc63a2b58779aa0d26ae7f1e75805a239f1a342433860e5a238d6577fae5ab04b9d15e7f11c55b867065dfd13781a6a62e4958
2022-04-07 11:28:43 -05:00
Jonas Schnelli
b0de56db6a Merge #18922: gui: Do not translate InitWarning messages in debug.log
78be8d97d3d750fcfbbe509a72639b7b30b7bd18 util: Drop OpOriginal() and OpTranslated() (Hennadii Stepanov)
da16f95c3fecf4ee1e9a1dc4333b0b92cd981afd gui: Do not translate InitWarning messages in debug.log (Hennadii Stepanov)
4c9b9a4882e68835f16a52f1f0657efe47e589b5 util: Enhance Join() (Hennadii Stepanov)
fe05dd0611cfc2929a7fdec04ca5948bccf0233b util: Enhance bilingual_str (Hennadii Stepanov)

Pull request description:

  This PR forces the `bitcoin-qt` to write `InitWarning()` messages to the `debug.log` file in untranslated form, i.e., in English.

  On master (376294cde6b1588cb17055d8fde567eaf5848c3c):
  ```
  $ ./src/qt/bitcoin-qt -lang=nl -debug=vladidation -printtoconsole | grep 'vladi'
  Warning: Niet-ondersteunde logcategorie -debug=vladidation.
  2020-05-09T12:39:59Z Warning: Niet-ondersteunde logcategorie -debug=vladidation.
  2020-05-09T12:40:02Z Command-line arg: debug="vladidation"
  ```

  With this PR:
  ```
  $ ./src/qt/bitcoin-qt -lang=nl -debug=vladidation -printtoconsole | grep 'vladi'
  Warning: Unsupported logging category -debug=vladidation.
  2020-05-09T12:42:04Z Warning: Unsupported logging category -debug=vladidation.
  2020-05-09T12:42:35Z Command-line arg: debug="vladidation"
  ```

  ![Screenshot from 2020-05-09 15-42-31](https://user-images.githubusercontent.com/32963518/81474073-c7a50e00-920b-11ea-8775-c41122dacafe.png)

  Related to #16218.

ACKs for top commit:
  laanwj:
    ACK 78be8d97d3d750fcfbbe509a72639b7b30b7bd18
  jonasschnelli:
    utACK 78be8d97d3d750fcfbbe509a72639b7b30b7bd18
  MarcoFalke:
    ACK 78be8d97d3d750fcfbbe509a72639b7b30b7bd18 📢

Tree-SHA512: 48e9ecd23c4dd8ec262e3eb94f8e30944bcc9c6c163245fb837b2e0c484d4d0b4f47f7abc638c14edc27d635d340ba3ee4ba4506b062399e9cf59a1564c98755

# Conflicts:
#	src/wallet/load.cpp
2022-04-07 11:28:43 -05:00
MarcoFalke
af00598c9a Merge #16224: gui: Bilingual GUI error messages
18bd83b1fee2eb47ed4ad05c91f2d6cc311fc9ad util: Cleanup translation.h (Hennadii Stepanov)
e95e658b8ec6e02229691a1941d688e96d4df6af doc: Do not translate technical or extremely rare errors (Hennadii Stepanov)
7e923d47ba9891856b86bc9f718cf2f1f773bdf6 Make InitError bilingual (Hennadii Stepanov)
917ca93553917251e0fd59717a347c63cdfd8a14 Make ThreadSafe{MessageBox|Question} bilingual (Hennadii Stepanov)
23b9fa2e5ec0425980301d2eebad81e660a5ea39 gui: Add detailed text to BitcoinGUI::message (Hennadii Stepanov)

Pull request description:

  This is an alternative to #15340 (it works with the `Chain` interface; see: https://github.com/bitcoin/bitcoin/pull/15340#issuecomment-502674004).
  Refs:
  - #16218 (partial fix)
  - https://github.com/bitcoin/bitcoin/pull/15894#issuecomment-487947077

  This PR:
  - makes GUI error messages bilingual: user's native language + untranslated (i.e. English)
  - insures that only untranslated messages are written to the debug log file and to `stderr` (that is not the case on master).

  If a translated string is unavailable only an English string appears to a user.

  Here are some **examples** (updated):

  ![Screenshot from 2020-04-24 17-08-37](https://user-images.githubusercontent.com/32963518/80222043-e2458780-864e-11ea-83fc-197b7121dba5.png)

  ![Screenshot from 2020-04-24 17-12-17](https://user-images.githubusercontent.com/32963518/80222051-e5407800-864e-11ea-92f7-dfef1144becd.png)

  * `qt5ct: using qt5ct plugin` message is my local environment specific; please ignore it.

  ---

  Note for reviewers: `InitWarning()` is out of this PR scope.

ACKs for top commit:
  Sjors:
    re-tACK 18bd83b1fee2eb47ed4ad05c91f2d6cc311fc9ad
  MarcoFalke:
    ACK 18bd83b1fee2eb47ed4ad05c91f2d6cc311fc9ad 🐦

Tree-SHA512: 3cc8ec44f84403e54b57d11714c86b0855ed90eb794b5472e432005073354b9e3f7b4e8e7bf347a4c21be47299dbc7170f2d0c4b80e308205ff09596e55a4f96

# Conflicts:
#	src/dashd.cpp
#	src/httpserver.cpp
#	src/index/base.cpp
#	src/init.cpp
#	src/interfaces/chain.cpp
#	src/interfaces/chain.h
#	src/interfaces/node.cpp
#	src/net.h
#	src/qt/bitcoingui.cpp
#	src/ui_interface.h
#	src/wallet/init.cpp
#	src/wallet/load.cpp
2022-04-07 10:41:24 -05:00
UdjinM6
903291788c
Merge pull request #4735 from kittywhiskers/translation
merge bitcoin#16244...18699: translation backports
2022-04-07 13:18:29 +03:00
UdjinM6
ccaebc0096
Merge pull request #4746 from vijaydasmp/bp2004
Merge #17992,18170, 18382,16947,17316,17284
2022-04-07 13:17:34 +03:00
Kittywhiskers Van Gogh
b8b9e24a9f merge bitcoin#18699: Avoid translating RPC errors 2022-04-07 10:13:16 +05:30
fanquake
27727c7541
Merge #17316: refactor: Replace all uses of boost::optional with our own Optional type
d314e8a818d4c162b1c7201533e6b600dcab2d91 refactor: Replace all uses of boost::optional with our own Optional type (Wladimir J. van der Laan)

Pull request description:

  Replace all uses of boost::optional with our own Optional type. Luckily, there aren't so many.

  After this:

  - `boost::optional` is no longer used directly (only through `Optional` which is an alias for it)
  - `boost/optional.hpp` is only included in one place

ACKs for top commit:
  MarcoFalke:
    ACK d314e8a818d4c162b1c7201533e6b600dcab2d91
  practicalswift:
    ACK d314e8a818d4c162b1c7201533e6b600dcab2d91 -- diff looks correct + satisfying to see incremental progress towards the goal of a Boost free future :)
  jtimon:
    ACK d314e8a818d4c162b1c7201533e6b600dcab2d91
  fanquake:
    ACK d314e8a818d4c162b1c7201533e6b600dcab2d91

Tree-SHA512: b43e0017af81b07b5851377cd09624f114510ac5b9018d037664b58ad0fc8e893e30946b61f8f5e21e39125925bf9998a81f2226b468aab2df653ee57ed3213d
2022-04-07 07:22:08 +05:30
Kittywhiskers Van Gogh
8b11e135f7 merge bitcoin#17279: Remove redundant c_str() calls in formatting 2022-04-06 13:51:39 +05:30
Kittywhiskers Van Gogh
2222a003e1 merge bitcoin#17070: Avoid showing GUI popups on RPC errors 2022-04-06 13:51:35 +05:30
Kittywhiskers Van Gogh
6fbedf7740 merge bitcoin#16399: Improve wallet creation 2022-04-06 00:08:01 +05:30
Kittywhiskers Van Gogh
a0bf4338a1 merge bitcoin#16244: Move wallet creation out of the createwallet rpc into its own function 2022-04-06 00:08:01 +05:30
Kittywhiskers Van Gogh
c25b668125 merge bitcoin#16362: Add bilingual_str type 2022-04-06 00:08:01 +05:30
W. J. van der Laan
a02ea7ec07 Merge bitcoin/bitcoin#23414: wallet: Fix comment grammar in bdb.h
bd9c6ade46c8c29bea3fd5df62a35efadb77ac89 wallet: Fixed Grammatical error in bdb.h (zealsham)

Pull request description:

  A comment in bdb.h file in the wallet directory contains a grammatical error that makes the underlying code harder to reason about .
  The comment which says `/** Indicate the a new database user has began using the database. */` should actually be
  `/** indicate that a new database user has began using the database. */`. The former is quite confusing , and leaves you wondering what "the a new database user " is refering to . This pull request thus provides value to the bitcoin codebase by improving readability .

Top commit has no ACKs.

Tree-SHA512: db07cda39f89ac344be3497c884a8c6e4b48276afae18e931a9a8e5732c58eed20645ccd18d6b1212c763f64b1300477c1de26a00b5b3b24e6141ffae3658ca7
2022-04-03 18:46:47 -05:00
PastaPastaPasta
279686f9ba
Merge pull request #4742 from vijaydasmp/bp2002
Merge #17154,16569,17351,13716,17084,18391,16821,17140
2022-04-03 17:33:44 -05:00
Vijay Manikpuri
77e84287e9
Merge #16226: Move ismine to the wallet module (#4640)
e61de6306fd89fe9aae90253062e7b1b20343f8a Change ismine to take a CWallet instead of CKeyStore (Andrew Chow)
7c611e20007bf5face34d33dffa26c8db67e29ec Move ismine to wallet module (Andrew Chow)

Pull request description:

  `IsMine` isn't used outside of the wallet except for the tests. It also doesn't make sense to be outside of the wallet. This PR moves `IsMine` into the wallet module and for it to take a `CWallet` instead of `CKeyStore`. The test that used `IsMine` is also moved to the wallet tests.

  This is first [prerequisites](https://github.com/bitcoin-core/bitcoin-devwiki/wiki/Wallet-Class-Structure-Changes#ismine) for the wallet structure changes.

ACKs for commit e61de6:
  MarcoFalke:
    re-ACK e61de6306f (only change is rebase with git auto-merge)
  meshcollider:
    Very light code review ACK e61de6306f

Tree-SHA512: 1cb4ad12652aef7922ab7460c6d413e8b9d1855dca78c0a286ae49d5c0765bc7996c55f262c742001d434eb9bd4215dc2cc7aae1b371ee1a82d46b32c17e6341

Co-authored-by: MeshCollider <dobsonsa68@gmail.com>
2022-04-03 17:26:52 -05:00
Wladimir J. van der Laan
d1c62adea9
Merge #18346: rpc: Document an RPCResult for all calls; Enforce at compile time
fac52253f81a4f0d04b25eb4b6c28d04b85ef10b rpc: Document an RPCResult for all calls; Enforce at compile time (MarcoFalke)
fadd99f61032c0b75ad9b198eb5d8e307b0518ee rpc: Add missing newline in RPCResult description (MarcoFalke)

Pull request description:

  This documents the RPC Result (type and description, if applicable) everywhere it was missing. The patch can be reviewed with the `git diff` option `-W`/`--function-context`.

  Also, code won't compile without having an RPCResult documented.

ACKs for top commit:
  laanwj:
    Lightly tested ACK fac52253f81a4f0d04b25eb4b6c28d04b85ef10b
  promag:
    Tested ACK fac52253f81a4f0d04b25eb4b6c28d04b85ef10b, built and verified listunspent help output.

Tree-SHA512: af2c1af1432beb944993776026c320814bfaecaf202f47359f5758849096ca7051ec6560395a2cc6678dcc111e7c9cf4917d0f0b221bdcf3ed1642e14d0e5b3c
2022-04-02 16:30:52 +05:30
Wladimir J. van der Laan
d24c2a6cc8
Merge #17154: wallet: Remove return value from CommitTransaction
9e95931865186d7a9a6dc54b64bd96507e9fea4b [wallet] Remove `state` argument from CWallet::CommitTransaction (John Newbery)
d1734f9a3b138ab046f38ee44a09bc3847bf938a [wallet] Remove return value from CommitTransaction() (John Newbery)
b6f486a02b463ffeaf82ec11fc6f74f439c037ae [wallet] Add doxygen comment to CWallet::CommitTransaction() (John Newbery)
8bba91b22d22a8dfea7c947b542b1022bfc1c0ea [wallet] Fix whitespace in CWallet::CommitTransaction() (John Newbery)

Pull request description:

  `CommitTransaction()` returns a bool to indicate success, but since commit
  b3a7410 (#9302) it only returns true, even if the transaction was not
  successfully broadcast. This commit changes CommitTransaction() to return
  void.

  All dead code in `if (!CommitTransaction())` branches has been removed.

  Two additional commits fix up the idiosyncratic whitespace in `CommitTransaction` and add a doxygen comment for the function.

ACKs for top commit:
  laanwj:
    ACK 9e95931865186d7a9a6dc54b64bd96507e9fea4b

Tree-SHA512: a55a2c20369a45222fc0e02d0891495655a926e71c4f52cb72624768dd7b9c1dca716ea67d38420afb90f40c6e0fd448caa60c18fd693bb10ecb110b641820e6
2022-04-02 16:30:44 +05:30
PastaPastaPasta
568059b14d
Merge pull request #4651 from vijaydasmp/bp1910
Merge #15308 #15754 #15483 #16332
2022-04-01 00:19:34 -05:00
MarcoFalke
64ac0f389b
Merge #15308: build: Restore compatibility with older boost
119d360aab travis: Document whether functional tests are run in the job name (Ben Woosley)
64f28545e3 Revert "travis: Compile trusty with depends for now" (Ben Woosley)
267eac00f9 Prefer boost::optional#get_value_or over #value_or (Ben Woosley)
1971f5ba04 Piecewise construct to avoid invalid construction (Ben Woosley)

Pull request description:

  In light of #14979, I realized that only qt 5.5+ was being tested under CI, while compatibility lists 5.2+.

  In #15276, Marco added Trusty to CI, building with depends. This changes that build to system libraries, in order to ensure ongoing compatibility with our claimed minimum required versions.

  Fixes #14983, previously open as #14998

Tree-SHA512: 6cff5e28c756ecb8bf797c8f6eb77c1944ba61a8dd6d7d4984e63eef384f6429dc79c505da3241c05b9c4db31c72b2a9846c7365aba9280f2e0620e5f3998d07
2022-03-30 08:04:20 +05:30
Kittywhiskers Van Gogh
bbbba97fb6 merge bitcoin#17266: Rename DecodeDumpTime to ParseISO8601DateTime 2022-03-24 09:27:25 +05:30
UdjinM6
f1a64744cd
Merge pull request #4708 from kittywhiskers/json_cleanup
merge bitcoin 15746, 16240, 17192, 17318, 17809, 18098, 18444, 18607, 19100, 19386: rpc backports
2022-03-15 12:08:35 +03:00
UdjinM6
39827f9eb4
Merge pull request #4725 from PastaPastaPasta/develop-trivial-2022-03-13
Develop trivial 2022 03 13
2022-03-15 01:08:14 +03:00
PastaPastaPasta
18c59b6263
Merge #16291: gui: Stop translating PACKAGE_NAME (#4723)
* Merge #16291: gui: Stop translating PACKAGE_NAME

fa64b947bb3075ff8737656706b941af691908ab util: No translation of `Bitcoin Core` in the copyright (MarcoFalke)
fab85208f678ba1be53bdb73a73ce3c5c937d448 qt: Run «make translate» in ./src/ (MarcoFalke)
fabe87d2c923ab3a70b8cde2666a4d1cda8b22fb scripted-diff: Avoid passing PACKAGE_NAME for translation (MarcoFalke)
fa5e9f157e568b7fbbea1482b393181f0733f2ba build: Stop translating PACKAGE_NAME (MarcoFalke)

Pull request description:

  Generally the package name is not translated, but the package description is.

  E.g. `GIMP` or `Firefox` are always called that way regardless of the system language. However, "`Firefox` webbrowser" or "`GIMP` image manipulation program" are translated.

ACKs for top commit:
  hebasto:
    ACK fa64b947bb3075ff8737656706b941af691908ab, I have not tested the code, but I have reviewed it and it looks OK, I agree it can be merged.

Tree-SHA512: 626f811531182d0ba0ef1044930d32726773349bcb49b10261288a86ee6b80a183db30a87d817d5b0d501fad058ac22d6272311716b4f5a154f17c6f391a5a1a

* more

Co-authored-by: MarcoFalke <falke.marco@gmail.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-03-15 00:39:32 +03:00
PastaPastaPasta
0675320d70
tests: add tests for CCoinJoinClientOptions (#4718) 2022-03-13 23:55:45 +03:00
fanquake
92230c754b Merge bitcoin/bitcoin#22713: Fix build with Boost 1.77.0
acb7aad27ec8a184808aa7905887e3b2c5d54e9c Fix build with Boost 1.77.0 (Rafael Sadowski)

Pull request description:

  BOOST_FILESYSTEM_C_STR changed to accept the path as an argument.

ACKs for top commit:
  hebasto:
    ACK acb7aad27ec8a184808aa7905887e3b2c5d54e9c
  benthecarman:
    ACK acb7aad27ec8a184808aa7905887e3b2c5d54e9c
  fanquake:
    ACK acb7aad27ec8a184808aa7905887e3b2c5d54e9c - tested the fix with Boost 1.77.0 and 1.71.0.

Tree-SHA512: c25fcb56971ee7a448cfb074f8a13696b32c16c63f81076f8a76911f93aa849c8f3637555b0b4215fa0d8b958641d7e4e60d10e103b833545cbc6b1f4009b526
2022-03-13 14:52:24 -05:00
Kittywhiskers Van Gogh
7573b1286c merge bitcoin#19250: Make RPC help compile-time static 2022-03-13 08:41:13 +05:30
Kittywhiskers Van Gogh
121553596a rpc: unconditionally print HelpRequiringPassphrase reminder 2022-03-12 19:17:25 +05:30
Kittywhiskers Van Gogh
f1eea61bba merge bitcoin#18607: Fix named arguments in documentation 2022-03-12 19:17:25 +05:30
Kittywhiskers Van Gogh
9cadff843e merge bitcoin#17318: replace asserts in RPC code with CHECK_NONFATAL and add linter 2022-03-12 19:17:25 +05:30
Kittywhiskers Van Gogh
e5bea93bf9 rpc: Refactor code to no longer use removed EnsureWalletIsAvailable 2022-03-12 19:17:25 +05:30
Kittywhiskers Van Gogh
a9e82ad6aa merge bitcoin#19100: Combine GetWalletForJSONRPCRequest and EnsureWalletIsAvailable functions 2022-03-12 19:16:34 +05:30
Kittywhiskers Van Gogh
a2917af201 rpc: Import conflict-free RPCResult formatting from fa6b061fc118995eec41766519a11bc0dd1a901d 2022-03-12 19:16:34 +05:30
Kittywhiskers Van Gogh
e1dd37c8bb merge bitcoin#18098: Add missing spaces in RPCResult, Normalize type names 2022-03-12 19:16:34 +05:30
PastaPastaPasta
cbbe801a3c
Merge pull request #4675 from Munkybooty/backports-0.18-pr20
Backports 0.18 pr20
2022-03-11 14:01:41 -06:00
UdjinM6
ec162d747d 3880 follow-up (fix 10583 backport) 2022-03-08 22:53:13 -05:00
Wladimir J. van der Laan
ce4fc11625 Merge #15122: [RPC] Expand help text for importmulti changes
b745e149c26507e31cdaed0412dcd9963647568d [docs] Expand help text for importmulti changes (John Newbery)

Pull request description:

  Expands the RPC help text for changes to the importmulti RPC method.

Tree-SHA512: e90e5abf66bba3863e7519b5f79c26d18a4d624e6e7878293bdd4ebb57f1a01c67de52e4a5621901a8cb87fb3516264b3b1a826997c7c3c17b11216f1f1a3db0
2022-03-08 22:53:13 -05:00
Jonas Schnelli
cabaeaa2fc Merge #13381: RPC: creates possibility to preserve labels on importprivkey
a6b5ec18f rpc: creates possibility to preserve labels on importprivkey (marcoagner)

Pull request description:

  Closes #13087.

  As discussed in the issue, this is a feature request instead of a bug report since the behaviour was as intended (i.e. label with default: `''`). With this, the old behaviour is kept while the possibility to achieve the preservation of labels, as expected in the open issue, is added.

Tree-SHA512: b33be50e1e7f62f7ddfae953177ba0926e2d848961f9fac7501c2b513322c0cb95787745d07d137488267bad1104ecfdbe800c6747f94162eb07c976835c1386
2022-03-08 00:46:09 -05:00
UdjinM6
afd098cbd1
Merge pull request #4716 from PastaPastaPasta/develop-trivial-2022-03-05
backports: trivial backports Mar 5 2022
2022-03-08 02:54:53 +03:00
UdjinM6
ac654efa60
Merge pull request #4709 from PastaPastaPasta/develop-trivial-2022-02-26
backport: trivial backports Feb 26 2022
2022-03-08 02:54:23 +03:00
fanquake
eb9398500b Merge #18274: rpc/wallet: initialize nFeeRequired to avoid using garbage value on failure
a652ba6293ef8d144935dc882b5f0003c987fa22 rpc/wallet: initialize nFeeRequired to avoid using garbage value on failure (Karl-Johan Alm)

Pull request description:

  Initialize the `nFeeRequired` variable to avoid using an uninitialized value for errors happening before it is set to 0.

  Note: this originally fixed `nFeeRet` in `wallet.cpp`.

ACKs for top commit:
  promag:
    ACK a652ba6293ef8d144935dc882b5f0003c987fa22.
  Sjors:
    utACK a652ba6293ef8d144935dc882b5f0003c987fa22
  practicalswift:
    ACK a652ba6293ef8d144935dc882b5f0003c987fa22 -- patch looks correct
  meshcollider:
    utACK a652ba6293ef8d144935dc882b5f0003c987fa22

Tree-SHA512: 0d12f1ffd0851ed5ce6d109d2c87f55e8b1d57da297e684feeabb57229200c4078f029c55ca5aa5712bd18e26dda3ce538443dfe68a7a6d504428068f81fded0
2022-03-07 09:40:31 -06:00
fanquake
6e6b5516a4 Merge #16572: wallet: Fix Char as Bool in Wallet
2dbfb37b407ed23b517f507d78fb77334142dce5 Fix Char as Bool in interfaces (Jeremy Rubin)

Pull request description:

  In a few places in src/wallet/wallet.h, we use a char when semantically we want a bool.

  This is kind of an issue because it means we can unserialize the same transaction with different fFromMe flags (as differing chars) and evaluate the following section in wallet/wallet.cpp
  ```c++
          if (wtxIn.fFromMe && wtxIn.fFromMe != wtx.fFromMe)
           {
               wtx.fFromMe = wtxIn.fFromMe;
               fUpdated = true;
           }
  ```
  incorrectly (triggering an fUpdated where both fFromMe values represent true, via different chars).

  I don't think this is a vulnerability, but it's just a little messy and unsemantic, and could lead to issues with stored wtxIns not being findable in a map by their hash.

  The serialize/unserialize code for bool internally uses a char, so it should be safe to make this substitution.

  NOTE: Technically, this is a behavior change -- I haven't checked too closely that nowhere is depending on storing information in this char. Theoretically, this could break something because after this change a tx unserialized with such a char would preserve it's value, but now it is converted to a ~true~ canonical bool.

ACKs for top commit:
  achow101:
    Code review ACK 2dbfb37b407ed23b517f507d78fb77334142dce5
  meshcollider:
    Code review ACK 2dbfb37b407ed23b517f507d78fb77334142dce5

Tree-SHA512: 8c0dc9cf672aa2276c694facbf50febe7456eaa8bf2bd2504f81a61052264b8b30cdb5326e1936893adc3d33504667aee3c7e207a194c71d87b3e7b5fe199c9d
2022-03-07 09:36:17 -06:00
Wladimir J. van der Laan
c23ba61230 Merge #13968: [wallet] couple of walletcreatefundedpsbt fixes
faaac5caaab4d5131040292f4ef2404074ad268b RPCTypeCheck bip32derivs arg in walletcreatefunded (Gregory Sanders)
1f0c4282e961baea85d5f74d7493bd7459784391 QA: add basic walletcreatefunded optional arg test (Gregory Sanders)
1f18d7b591ffcc8bb9422a9b728bd9a0d8da6a2a walletcreatefundedpsbt: remove duplicate replaceable arg (Gregory Sanders)
2252ec50085c151e7998ca9a30cda6a33ee862b6 Allow ConstructTransaction to not throw error with 0-input txn (Gregory Sanders)

Pull request description:

  1) Previously an empty input argument transaction that is marked for replaceability fails to pass the `SignalsOptInRBF` check right before funding it. Explicitly check for that condition before throwing an error.

  2) The rpc call had two separate `replaceable` arguments, each of which being used in mutually exclusive places. I preserved the `options` version to retain compatability with `fundtransaction`.

Tree-SHA512: 26eb0c9e2d38ea51d11f741d61100223253271a084adadeb7e78c6d4e9004636f089e4273c5bf64a41bd7e9ff795317acf30531cb36aeb0d8db9304b3c8270c3
2022-03-06 14:40:40 -05:00
UdjinM6
1f9e178d3d
Merge pull request #4714 from kittywhiskers/db_refactor
merge bitcoin#19290...19308: berkeley db refactoring
2022-03-06 21:29:31 +03:00
Kittywhiskers Van Gogh
8276555c6a merge bitcoin#19102: Introduce and use DummyDatabase instead of dummy BerkeleyDatabase 2022-03-06 12:39:01 +05:30
Kittywhiskers Van Gogh
044f3ab201 merge bitcoin#19334: Introduce WalletDatabase abstract class 2022-03-06 12:39:01 +05:30
Kittywhiskers Van Gogh
c0c3934ff0 merge bitcoin#19325: Refactor BerkeleyDatabase to introduce DatabaseBatch abstract class 2022-03-06 12:30:58 +05:30
Kittywhiskers Van Gogh
6248f8dd6c merge bitcoin#19320: Replace CDataStream& with CDataStream&& where appropriate 2022-03-06 12:30:58 +05:30
Kittywhiskers Van Gogh
a40b94755a merge bitcoin#19324: Move BerkeleyBatch static functions to BerkeleyDatabase 2022-03-06 12:30:58 +05:30
Kittywhiskers Van Gogh
619233127d merge bitcoin#19310: BerkeleyDatabase make BerkeleyDatabase::Create, CreateMock, and CreateDummy non-static functions 2022-03-06 12:30:58 +05:30
Kittywhiskers Van Gogh
a276282a77 merge bitcoin#19308: BerkeleyBatch Handle cursor internally 2022-03-06 12:30:58 +05:30
Kittywhiskers Van Gogh
7b9a69bd0f merge bitcoin#19292: refactor Read, Write, Erase, and Exists into non-template functions 2022-03-06 12:30:58 +05:30
Kittywhiskers Van Gogh
068fc48bdd merge bitcoin#19290: Move BDB specific things into bdb.{cpp/h} 2022-03-06 12:30:58 +05:30
Kittywhiskers Van Gogh
07a4d48249 merge bitcoin#18918: Move salvagewallet into wallettool 2022-03-06 12:30:20 +05:30
MarcoFalke
5fbff97ef7 Merge #19018: docs: fixing description of the field sequence in walletcreatefundedpsbt RPC method
d0a3feea73e0751f325ef7f1de20fa668f27332e Change docs for walletcreatefundedpsbt RPC method (Ivan Vershigora)

Pull request description:

  `sequence` field in the list of inputs currently marked as "required". Actually it can be omitted and it's value depends on `locktime` and `options.replaceable` fields. Just the same as in `createpsbt` call.

ACKs for top commit:
  achow101:
    ACK d0a3feea73e0751f325ef7f1de20fa668f27332e

Tree-SHA512: 3f429a2c2eea283a47fb5002a99f7e2a5ed6f67df9fd895c1ab938256c48a6497ed6ac2673d8fe8968dfb67b939f4a84570899d9faf52f3abd6ec90c0703d1bd
2022-03-05 13:48:08 -06:00
PastaPastaPasta
c67867582d
Merge pull request #4638 from Munkybooty/backports-0.18-pr18
Backports 0.18 pr18
2022-03-05 12:43:14 -06:00
MeshCollider
80bbd4242d Merge #14075: Import watch only pubkeys to the keypool if private keys are disabled
f4b00b70e Import public keys in order (Andrew Chow)
9e1551b9c Test pubkey import to keypool (Andrew Chow)
513719c5f Add option to importmulti add an imported pubkey to the keypool (Andrew Chow)
9b81fd19a Fetch keys from keypool when private keys are disabled (Andrew Chow)
99cccb900 Add a method to add a pubkey to the keypool (Andrew Chow)

Pull request description:

  If the wallet has private keys disabled, allow importing public keys into the keypool. A `keypool` option has been added to `importmulti` in order to signal that the keys should be added to the keypool.

Tree-SHA512: e88ea7bf726c13031aa739389a0c2662e6b22a4f9a4dc45b042418c692a950d98f170e0db80eb59e9c9063cda8765eaa85b2927d1790b9625744f7a87bad5fc8
2022-03-04 23:38:32 -05:00
UdjinM6
932a75b85f
wallet: Fix CanGenerateKeys (#4705)
Using wallet flags should be enough here, no need for any additional conditions.

NOTE: Wallets created prior to 4627 have wallet version set to FEATURE_HD even when no HD chain was initialized, that's why they have issues without this fix.

Fixes 4699
2022-02-26 16:03:21 -06:00
Kittywhiskers Van Gogh
e36ee01f99 merge bitcoin#17384: Create new test library 2022-02-26 10:45:13 +05:30
Kittywhiskers Van Gogh
5086ad7c2f merge bitcoin#16540: Add ASSERT_DEBUG_LOG to unit test framework 2022-02-26 10:37:36 +05:30
MeshCollider
7d02a25c70
Merge #15433: Use a single wallet batch for UpgradeKeyMetadata
0bedcbafd Use a single wallet batch for UpgradeKeyMetadata (Jonas Schnelli)

Pull request description:

  Opening wallets (the first time) after #14021 took on my end around 30 seconds due to the keymetadata migration (tested on regtest).

  Using a single wallet batch reduces the required time for the migration down to <1s on my system for a default 2k keypool wallet.

Tree-SHA512: f68739e452d382f5294186f47511b94884a1a0868688dd3179034a7e091a67f93bc9dd45cdfc9fa6b1fe90362772b719278012f2f56b752b803c87db8597a7b0
2022-02-18 03:42:05 +03:00
MeshCollider
ed0e2dd075
Merge #14021: Import key origin data through descriptors in importmulti (+ changes from PRs partially merged earlier: 15368, 15749)
cb3511b9d Add release notes for importing key origin info change (Andrew Chow)
4c75a69f3 Test importing descriptors with key origin information (Andrew Chow)
02d6586d7 Import KeyOriginData when importing descriptors (Andrew Chow)
3d235dff5 Implement a function to add KeyOriginInfo to a wallet (Andrew Chow)
eab63bc26 Store key origin info in key metadata (Andrew Chow)
345bff601 Remove hdmasterkeyid (Andrew Chow)
bac8c676a Add a method to CWallet to write just CKeyMetadata (Andrew Chow)
e7652d3f6 Add WriteHDKeypath function and move *HDKeypath to util/bip32.{h,cpp} (Andrew Chow)
c45415f73 Refactor keymetadata writing to a separate method (Andrew Chow)

Pull request description:

  This PR allows for key origin data as defined by the descriptors document to be imported to the wallet when importing a descriptor using `importmulti`. This allows the `walletprocesspsbt` to include the BIP 32 derivation paths for keys that it is watching that are from a different HD wallet.

  In order to make this easier to use, a new field `hdmasterkeyfingerprint` has been added to `getaddressinfo`. Additionally I have removed `hdmasterkeyid` as was planned. I think that this API change is fine since it was going to be removed in 0.18 anyways. `CKeyMetadata` has also been extended to store key origin info to facilitate this.

Tree-SHA512: 9c7794f3c793da57e23c5abbdc3d58779ee9dea3d53168bb86c0643a4ad5a11a446264961e2f772f35eea645048cb60954ed58050002caee4e43cd9f51215097
2022-02-18 03:42:05 +03:00
PastaPastaPasta
9789a42088
Merge pull request #4575 from Munkybooty/backports-0.19-pr7
Backports 0.19 pr7
2022-02-15 23:31:21 +07:00
PastaPastaPasta
fe0ebb3c04
refactor: fix numerous compilation warnings (#4682)
* style: use clang-tidy style named parameters

* refactor: make IsTimeOutOfBounds testable by having current time be a parameter

* style: use x-> not (*x).

* refactor: make SelectCoinsGroupedByAddresses return a vector, remove out param

previous semantics was return false if the vecTally vector was empty. Now we just let the caller check if it is empty or not

* refactor: fix some sign-compare warnings

* refactor: consistently pre-declare stuff as struct / class inline with underlying type

* refactor: don't return const bool

* refactor: use ref to string

* refactor: use = default for CompactTallyItem

* refactor: adjust "initialization" ordering

* refactor: adjust how we handle negatives in GetProjectedMNPayees, use std::min

* refactor: don't bind a reference to a temporary value

* refactor: use a ref

* refactor: ensure attempt in SelectMemberForRecovery is non-negative.

* refactor: remove unused this capture

* refactor: fix numerous sign-compare warnings

* refactor: more consistently use size_t, use empty()
2022-02-11 19:15:26 +03:00
UdjinM6
fbeb31190b 16322 followup 2022-01-30 18:31:00 -05:00
Wladimir J. van der Laan
c516869bcf Merge #16322: wallet: Fix -maxtxfee check by moving it to CWallet::CreateTransaction
0d101a340c44841cbbc5982d55354b1787bc39e2 test: Add test for maxtxfee option (MarcoFalke)
177550101b600ccb32886695326eb72cd9752c8b wallet: Remove unreachable code in CreateTransaction (MarcoFalke)
5c1b9714cb0a13be28324f91f4ec9ca66a1de8c7 wallet: Fix -maxtxfee check by moving it to CWallet::CreateTransaction (João Barbosa)

Pull request description:

  Follow up to #16257, this PR makes `bumpfee` aware of `-maxtxfee`.

  It also prevents dangling locked unspents when calling `fundrawtransaction` - because the previous check was after `LockCoin`.

ACKs for top commit:
  MarcoFalke:
    re-ACK 0d101a340c44841cbbc5982d55354b1787bc39e2, only change is small test fixup

Tree-SHA512: 3464b24ae7cd4e72ed41438c6661828ba1304af020f05da62720b23668ae734e16cf47c6d97e150cc84ef631ee099b16fc786c858f3d089905845437338fd512
2022-01-30 18:31:00 -05:00
UdjinM6
5a8a95c494 12909 followup 2022-01-30 18:31:00 -05:00
MarcoFalke
247649ac42 Merge #12582: Fix ListCoins test failure due to unset g_wallet_allow_fallback_fee
7ba2d57852 Fix ListCoins test failure due to unset g_wallet_allow_fallback_fee (Russell Yanofsky)

Pull request description:

  New global variable was introduced in #11882 and not setting it causes:

  ```
  wallet/test/wallet_tests.cpp(638): error in "ListCoins": check wallet->CreateTransaction({recipient}, wtx, reservekey, fee, changePos, error, dummy) failed
  wallet/test/wallet_tests.cpp(679): error in "ListCoins": check list.begin()->second.size() == 2 failed [1 != 2]
  wallet/test/wallet_tests.cpp(686): error in "ListCoins": check available.size() == 2 failed [1 != 2]
  wallet/test/wallet_tests.cpp(705): error in "ListCoins": check list.begin()->second.size() == 2 failed [1 != 2]
  ```

  It's possible to reproduce the failure reliably by running:

  ```
  src/test/test_bitcoin --log_level=test_suite --run_test=wallet_tests/ListCoins
  ```
  Failures happen nondeterministically because boost test framework doesn't run tests in a specified order, and tests that run previously can set the global variables and mask the bug.

  This is similar to bugs #12150 and #12424. Example travis failures are:

  https://travis-ci.org/bitcoin/bitcoin/jobs/348296805#L2676
  https://travis-ci.org/bitcoin/bitcoin/jobs/348362560#L2769
  https://travis-ci.org/bitcoin/bitcoin/jobs/348362563#L2824

Tree-SHA512: ca37b554a75c12ac2d534de62bf74eb9e0b29e4399ebf1fa10053a40887e55e9e7135f754a01e5a67499cc8677ae226542146b370b1e83d08bb63d79ff379073
2022-01-30 18:31:00 -05:00