Commit Graph

1597 Commits

Author SHA1 Message Date
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
MeshCollider
0f6c7b98a5 Merge #16402: Remove wallet settings from chainparams
fa4a605a4c611abe9af4c18aab20f4d1d039170f Remove wallet settings from chainparams (MarcoFalke)

Pull request description:

  Feels a bit odd to have wallet setting in the chainparams, so remove them from there

ACKs for top commit:
  promag:
    ACK fa4a605a4c611abe9af4c18aab20f4d1d039170f, missed s/2018/2019?
  practicalswift:
    utACK fa4a605a4c611abe9af4c18aab20f4d1d039170f
  darosior:
    ACK fa4a605a4c611abe9af4c18aab20f4d1d039170f

Tree-SHA512: 2b3a5ee85d36af290d7db80bed1339e3c684607f1ce61cc65c906726e9174e40325fb1f67a34d8780f2a61fa39a1785e7c3a1cef5b6d6c364f38db5300cdbe3a
2022-01-30 18:31:00 -05:00
Wladimir J. van der Laan
41f9bfaee6 Merge #11882: Disable default fallbackfee on mainnet
3f592b8 [QA] add wallet-rbf test (Jonas Schnelli)
8222e05 Disable wallet fallbackfee by default on mainnet (Jonas Schnelli)

Pull request description:

  Removes the default fallback fee on mainnet (but keeps it on testnet/regtest).

  Transactions using the fallbackfee in case the fallback fee has not been set are getting rejected.

Tree-SHA512: e54d2594b7f954e640cc513a18b0bfbe189f15e15bdeed4fe02b7677f939bca1731fef781b073127ffd4ce08a595fb118259b8826cdaa077ff7d5ae9495810db
2022-01-30 18:30:28 -05:00
Wladimir J. van der Laan
02e5436bb8 Merge #16451: Remove CMerkleTx
05b56d1c937b7667ad51400d2f9fb674af72953f [wallet] Remove CMerkleTx serialization logic (John Newbery)
783a76f23ba4f33b6e6f609eaf3bf41afd9bcd6f [wallet] Flatten CWalletTx class hierarchy (John Newbery)
b3a9d179f23f654b8fba63924bbca5fd31ad4bb0 [wallet] Move CMerkleTx functions into CWalletTx (John Newbery)

Pull request description:

  CMerkleTx is only used as a base class for
  CWalletTx. It was previously also used for vtxPrev which
  was removed in 93a18a3650.

  This PR moves all of the CMerkleTx members and logic
  into CWalletTx. The CMerkleTx class is kept for deserialization
  and serialization of old wallet files.

  This makes the refactor in #15931 cleaner.

ACKs for top commit:
  laanwj:
    ACK 05b56d1c937b7667ad51400d2f9fb674af72953f. Looks good to me.

Tree-SHA512: 3d3a0069ebb536b12a328f1261e7dc55158a71088d445ae4b4ace4142c432dc296f58c8183b1922e54a60b8cc77e9d17c3dce7478294cd68693594baacf2bab3
2022-01-30 18:29:30 -05:00
PastaPastaPasta
22f335e268
refactor: some refactoring in coinjoin code (#4652)
* Make numerous coinjoin functions constexpr

* remove empty function

Signed-off-by: Pasta <pasta@dashboost.org>

* remove InitStandardDenominations calls

Signed-off-by: Pasta <pasta@dashboost.org>

* use default constructors, add constexpr to CCoinJoinStatusUpdate constructor

Signed-off-by: Pasta <pasta@dashboost.org>

* remove default constructor

Signed-off-by: Pasta <pasta@dashboost.org>
2022-01-11 03:57:37 +03:00
PastaPastaPasta
25f5be7da7
Merge pull request #4643 from dzutte-cpp/merge_14890_15390
Merge bitcoin#14890 and bitcoin#15390
2022-01-09 21:03:01 -05:00
UdjinM6
e706b59fb9
Merge pull request #4613 from vijaydasmp/bp197
merge Bitcoin #16325 #16210 #15784 #15757 : Backport
2022-01-04 18:18:22 +03:00
Vijay Manikpuri
3148450032
Merge #16129: refactor: Remove unused includes (#4623)
67f4e9c522 Include core_io.h from core_read.cpp (practicalswift)
eca9767673 Make reasoning about dependencies easier by not including unused dependencies (practicalswift)

Pull request description:

  Make reasoning about dependencies easier by not including unused dependencies.

  Please note that the removed headers are _not_ "transitively included" by other still included headers. Thus the removals are real.

  As an added bonus this change means less work for the preprocessor/compiler. At least 51 393 lines of code no longer needs to be processed:

  ```
  $ git diff -u HEAD~1 | grep -E '^\-#include ' | cut -f2 -d"<" | cut -f1 -d">" | \
        sed 's%^%src/%g' | xargs cat | wc -l
  51393
  ```

  Note that 51 393 is the lower bound: the real number is likely much higher when taking into account transitively included headers :-)

ACKs for commit 67f4e9:

Tree-SHA512: 0c8868aac59813f099ce53d5307eed7962dd6f2ff3546768ef9e5c4508b87f8210f1a22c7e826c3c06bebbf28bdbfcf1628ed354c2d0fdb9a31a42cefb8fdf13

Co-authored-by: MarcoFalke <falke.marco@gmail.com>
2022-01-03 13:10:02 -06:00
MeshCollider
d5d3490a95
Merge #15784: rpc: Remove dependency on interfaces::Chain in SignTransaction
99e88a372 rpc: Remove dependency on interfaces::Chain in SignTransaction (Antoine Riard)

Pull request description:

  Assuming wallet RPCs and node RPCs will go into different processes, signrawtransactionwithkey doesn't need to access Coins via interfaces::Chain, it may use directly utility in node/coins.cpp

  Obviously will need rebase after #15638

Tree-SHA512: 42ee8fcbcd38643bbd82210db6f68249bed5ee036a4c930a1db534d0469a133e287b8869c977bf0cc79a7296dde04f72adb74d24e1cd20f4a280f4c2b7fceb74
2022-01-03 18:55:38 +05:30
MarcoFalke
4711bdba6b Merge #15390: [wallet-tool] Close bdb when flushing wallet
318b1f7af1 [wallet] Close bdb when flushing wallet. (John Newbery)

Pull request description:

  bdb would not be closed when closing the wallet in wallet-tool. Fix this by calling wallet->flush with true.

Tree-SHA512: f722e527e4806eca5254221e944f57853d11bf89a9264309fa558a6cc2b23feefb7bb2963e87b4fad9cfb31ac4cffe563688988e0614a481a8ff1d393aceb132
2021-12-30 12:41:27 -08:00
Wladimir J. van der Laan
67857bce60 Merge #14890: rpc: Avoid creating non-standard raw transactions
fa4c8679ed94f215ce895938f7c3c169a2ce101e rpc: Avoid creating non-standard raw transactions (MarcoFalke)

Pull request description:

  Multiple OP_RETURN outputs in a transaction are not standard and unlikely to be relayed, so avoid creating them.

  Apart from that, the logic was broken in that it duplicated the same hex-data for each data output: Closes #14868.

Tree-SHA512: b08d08062b5622e8a7b497e490ccaf53b06e844c863fda3bf3f932a98684a809e8341aeb98232059a795afb32d8770a6c5591a66f8e6ee372b672af245607887
2021-12-30 12:41:27 -08:00
PastaPastaPasta
19149f50f4
Merge pull request #4632 from Munkybooty/backports-0.19-pr11
Backports 0.19 pr11
2021-12-29 14:32:26 -05:00
Munkybooty
926d4a774f
lint: Fix typos flagged by codespell (#4639) 2021-12-29 00:45:54 +03:00
UdjinM6
61036f4fdb
Merge pull request #4636 from PastaPastaPasta/develop-trivial-2021-12-21
backport trivial 2021 12 21
2021-12-29 00:44:05 +03:00
fanquake
8d58fdf1a9
Merge #19956: rpc: Improve invalid vout value rpc error message
f471a3be00c2b6433b8c258b716982c0539da13f scripted diff: Improve invalid vout value rpc error message (Nima Yazdanmehr)

Pull request description:

  Since the `vout` value can start at `0`, the error message for *negative* values can be improved to something like: `vout cannot be negative`.

ACKs for top commit:
  fanquake:
    ACK f471a3be00c2b6433b8c258b716982c0539da13f
  promag:
    Code review ACK f471a3be00c2b6433b8c258b716982c0539da13f.

Tree-SHA512: fbdee3d0ddd5b58eb93934a1217b44e125a9ad39e672b1f35c7609c6c5fcf45ae1b731d3d6135b7225d98792dbfc34a50907b8c41274a5b029d7b5c59f886560
2021-12-28 00:27:10 -05:00
MarcoFalke
f17497a7d7 Merge #15670: refactor: combine Chain::findFirstBlockWithTime/findFirstBlockWithTimeAndHeight
765c0b364d refactor: combine Chain::findFirstBlockWithTime/findFirstBlockWithTimeAndHeight (Antoine Riard)

Pull request description:

  As suggested in #14711, pass height to CChain::FindEarliestAtLeast to
  simplify Chain interface by combining findFirstBlockWithTime and
  findFirstBlockWithTimeAndHeight into one

ACKs for commit 765c0b:
  jnewbery:
    utACK 765c0b364d41e9a251c3f88cbe203645854fd790. Nice work @ariard!
  ryanofsky:
    utACK 765c0b364d41e9a251c3f88cbe203645854fd790. Looks good, thanks for implementing the suggestion!

Tree-SHA512: 63f98252a93da95f08c0b6325ea98f717aa9ae4036d17eaa6edbec68e5ddd65672d66a6af267b80c36311fffa9b415a47308e95ea7718b300b685e23d4e9e6ec
2021-12-26 22:23:01 -05:00
MeshCollider
7975686b0e Merge #15557: Enhance bumpfee to include inputs when targeting a feerate
184f8785f wallet_bumpfee.py: add test for change key preservation (Gregory Sanders)
d08becff8 add functional tests for feerate bumpfee with adding inputs (Gregory Sanders)
0ea47ba7b generalize bumpfee to add inputs when needed (Gregory Sanders)

Pull request description:

  When targeting a feerate using `bumpfee`, call a new function that directly uses `CWallet::CreateTransaction` and coin control to get the desired result. This allows us to get a superset of previous behavior, with an arbitrary RBF bump of a transaction provided it passes the preconditional checks and spare confirmed utxos are available.

  Note(s):
  0) The coin selection will use knapsack solver for the residual selection.
  1) This functionality, just like knapsack coin selection in general, will hoover up negative-value inputs when given the chance.
  2) Newly added inputs must be confirmed due to current Core policy. See error: `replacement-adds-unconfirmed`
  3) Supporting this with `totalFee` is difficult since the "minimum total fee" option in `CreateTransaction` logic was (rightly)taken out in #10390 .

ACKs for commit 184f87:
  jnewbery:
    utACK 184f8785f710d58d9ef82e611591c9cbff5ab89d

Tree-SHA512: fb6542bdfb2c6010e328ec475cf9dcbff4eb2b1a1b27f78010214534908987a5635797196fa05edddffcbcf2987335872dc644a99261886d5cbb34a8f262ad3e
2021-12-26 22:23:01 -05:00
Jonas Schnelli
551ce4e3e4
Merge #16433: txmempool: Remove unused default value MemPoolRemovalReason::UNKNOWN
0000ff0aa763e3be524ac4537a41048a26529fb2 txmempool: Remove unused default value MemPoolRemovalReason::UNKNOWN (MarcoFalke)

Pull request description:

  The `remove*` methods set the removal reason to `UNKNOWN` by default. This is nowhere used; Except in tests, where the value doesn't matter. Fix that by removing the confusing default.

ACKs for top commit:
  practicalswift:
    utACK 0000ff0aa763e3be524ac4537a41048a26529fb2
  promag:
    ACK 0000ff0aa763e3be524ac4537a41048a26529fb2.
  jonasschnelli:
    utACK 0000ff0aa763e3be524ac4537a41048a26529fb2

Tree-SHA512: ffc8b35dd3291a81225171577c743c8bb2645638cab02960b6361174cb68afd739aaab7ab8661d65de5750d37daf16bb7eee9338958d8609093a8d46c2ada1ab
2021-12-25 18:32:18 +05:30
UdjinM6
f329625b67
Merge #16557: [wallet] restore coinbase and confirmed/conflicted checks in SubmitMemoryPoolAndRelay() (#4633)
c8b53c3beafa289dcdbd8c2ee9f957bdeca79cbc [wallet] Restore confirmed/conflicted tx check in SubmitMemoryPoolAndRelay() (John Newbery)
214c4ecb9ab306627a08abb35cf82c73f10ec627 [wallet] restore coinbase check in SubmitMemoryPoolAndRelay() (John Newbery)

Pull request description:

  These checks don't change mempool acceptance/relay behaviour, but reduce log spam.

ACKs for top commit:
  MarcoFalke:
    ACK c8b53c3beafa289dcdbd8c2ee9f957bdeca79cbc (non-doc changes are mostly a git revert 8753f5652b4710e66b50ce87788bf6f33619b75a)
  ariard:
    utACK c8b53c3

Tree-SHA512: f928573ad68d2f70ac69a84b57f352d255dccd1942097cc664f130fcbdcdd7364bc52c43b9157e65ebbaaebbe93586c6e8386f24361b27478e0a23a445677672

Co-authored-by: MarcoFalke <falke.marco@gmail.com>
2021-12-23 22:09:42 +03:00
Wladimir J. van der Laan
7d72c07722 Merge #15426: [Doc] importmulti: add missing description of keypool option
a607c9ae4c2730fca5ce340c400c95c87e498a7c [Doc] importmulti: add missing description of keypool option (David A. Harding)

Pull request description:

  Option was added in #14075 but not documented there.

  CC: @achow101

Tree-SHA512: dcb6421fa1be3d733d7a00c1b57ffd591fe76c02d1c479e729089c118bec52f53bd7ebdb5454b3b1c7603ab189e91682a688b673a7f6b04fa8610c4249711217
2021-12-22 10:15:40 -06:00
Kittywhiskers Van Gogh
262f7bc15e merge bitcoin#16542: Return more specific errors about invalid descriptors 2021-12-22 19:43:18 +05:30
Kittywhiskers Van Gogh
78fdc99894 merge bitcoin#16208: Consume ReserveDestination on successful CreateTransaction 2021-12-22 19:43:18 +05:30
Kittywhiskers Van Gogh
dece025270 merge bitcoin#16257: abort when attempting to fund a transaction above -maxtxfee
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-12-22 19:43:18 +05:30
Kittywhiskers Van Gogh
d74039862b merge bitcoin#15741: Batch write imported stuff in importmulti 2021-12-22 19:43:18 +05:30
Kittywhiskers Van Gogh
233990c536 merge bitcoin#15870: Only fail rescan when blocks have actually been pruned 2021-12-22 19:43:18 +05:30
Kittywhiskers Van Gogh
5c4cd3b4f6 merge bitcoin#15901: log on rescan completion
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-12-22 19:43:18 +05:30
Kittywhiskers Van Gogh
675a5833b3 merge bitcoin#15780: add cachable amounts for caching credit/debit values
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-12-22 19:41:11 +05:30
Kittywhiskers Van Gogh
393f455ecb merge bitcoin#15596: Ignore sendmany::minconf as dummy value 2021-12-22 19:41:11 +05:30
Kittywhiskers Van Gogh
c46306a1df merge bitcoin#15652: Update transactions with current mempool after load
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-12-22 19:41:11 +05:30
PastaPastaPasta
0645d47320
Merge #15292: Remove 'boost::optional'-related false positive -Wmaybe-uninitialized warnings on GCC compiler (#4635)
2d483142a7051389afe74c57a216843e6306f1a8 Remove 'boost::optional'-related gcc warnings (Hennadii Stepanov)

Pull request description:

  #14711 introduced some warnings when building with gcc compiler.

  See:
  - https://github.com/bitcoin/bitcoin/pull/14711#issuecomment-454760017 by @laanwj
  - https://github.com/bitcoin/bitcoin/pull/14711#pullrequestreview-193702611 by @ryanofsky

  This gcc [issue](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47679) has been known since version 4.6.0 and last updated in 2017.
  From the boost [docs](https://www.boost.org/doc/libs/1_69_0/libs/optional/doc/html/boost_optional/quick_start/optional_automatic_variables.html):
  > The default constructor of `optional` creates an _uninitialized_ `optional` object.

  Also: [False positive with -Wmaybe-uninitialized](https://www.boost.org/doc/libs/1_69_0/libs/optional/doc/html/boost_optional/tutorial/gotchas/false_positive_with__wmaybe_uninitialized.html) ([pointed out](https://github.com/bitcoin/bitcoin/pull/15292#issuecomment-459063170) by @Empact)

  This PR removes these warnings.

  cc: @Empact @practicalswift

Tree-SHA512: 752ae3c3ca6282bbf98726236fbc3069ab9d1aee57ae2ec2668b32e4541e7bc1acb15b7d6fa9e2b6daf1ec29c0987a1053ee1ca0f523b71367ff911221c58c94

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
2021-12-22 12:59:27 +03:00
PastaPastaPasta
5bc79fefc9
Remove KeePass integration (#4628)
* Remove KeePass integration

This integration is not actively supported. It has zero tests, little documentation, and has not really been actively maintained. As far as I can tell, noone uses this integration, and even if they do, they will simply have to copy/paste password from keepass instead of using this integration.

* continued
2021-12-22 12:53:11 +03:00
Wladimir J. van der Laan
d25c0f21b7
Merge #15006: Add option to create an encrypted wallet
662d1171d9e29964b039ba4c5bc8a2304426c003 Add option to create an encrypted wallet (Andrew Chow)

Pull request description:

  This PR adds a new `passphrase` argument to `createwallet` which will create a wallet that is encrypted with that passphrase.

  This is built on #15226 because it needs to first create an empty wallet, then encrypt the empty wallet and generate new keys that have only been stored in an encrypted state.

ACKs for commit 662d11:
  laanwj:
    utACK 662d1171d9e29964b039ba4c5bc8a2304426c003
  jnewbery:
    Looks great. utACK 662d1171d9e29964b039ba4c5bc8a2304426c003

Tree-SHA512: a53fc9a0f341eaec1614eb69abcf2d48eb4394bc89041ab69bfc05a63436ed37c65ad586c07fd37dc258ac7c7d5e4f7f93b4191407f5824bbf063b4c50894c4a
2021-12-17 21:11:25 +03:00
MeshCollider
254e122217
Merge #15226: Allow creating blank (empty) wallets (alternative)
7687f7873 [wallet] Support creating a blank wallet (Andrew Chow)

Pull request description:

  Alternative (kind of) to #14938

  This PR adds a `blank` parameter to the `createwallet` RPC to create a wallet that has no private keys initially. `sethdseed` can then be used to make a clean wallet with a custom seed. `encryptwallet` can also be used to make a wallet that is born encrypted.

  Instead of changing the version number as done in #14938, a wallet flag is used to indicate that the wallet should be blank. This flag is set at creation, and then unset when the wallet is no longer blank. A wallet becomes non-blank when a HD seed is set or anything is imported. The main change to create a blank wallet is primarily taken from #14938.

  Also with this, the term "blank wallet" is used instead of "empty wallet" to avoid confusion with wallets that have balance which would also be referred to as "empty".

  This is built on top of #15225 in order to fix GUI issues.

Tree-SHA512: 824d685e11ac2259a26b5ece99c67a7bda94a570cd921472c464243ee356b7734595ad35cc439b34357135df041ed9cba951e6edac194935c3a55a1dc4fcbdea
2021-12-17 21:11:10 +03:00
UdjinM6
5bdd245105
Merge pull request #4619 from PastaPastaPasta/remove-includes
refactor: Remove includes; backport 16659
2021-12-17 20:21:12 +03:00
PastaPastaPasta
d9c994a100
Merge pull request #4607 from humbleDasher/dec042021
Backport 17015, 16397, 15459
2021-12-17 11:04:02 -06:00
pasta
f04cf7bf47
16659 continuation
Signed-off-by: pasta <pasta@dashboost.org>
2021-12-17 12:02:16 -05:00
UdjinM6
6af131f825
Merge pull request #4568 from kittywhiskers/miscports
merge bitcoin#15588...#16475: backports
2021-12-13 01:15:18 +03:00
MarcoFalke
3c5dcb036a Merge #16659: refactoring: Remove unused includes
084e17cebd424b8e8ced674bc810eef4e6ee5d3b Remove unused includes (practicalswift)

Pull request description:

  As requested by MarcoFalke in https://github.com/bitcoin/bitcoin/pull/16273#issuecomment-521332089:

  This PR removes unused includes.

  Please note that in contrast to #16273 I'm limiting the scope to the trivial cases of pure removals (i.e. no includes added) to make reviewing easier.

  I'm seeking "Concept ACK":s for this obviously non-urgent minor cleanup.

  Rationale:
  * Avoids unnecessary re-compiles in case of header changes.
  * Makes reasoning about code dependencies easier.
  * Reduces compile-time memory usage.
  * Reduces compilation time.
  * Warm fuzzy feeling of being lean :-)

ACKs for top commit:
  ryanofsky:
    Code review ACK 084e17cebd424b8e8ced674bc810eef4e6ee5d3b. PR only removes include lines and it still compiles. In the worst case someone might have to explicitly add an include later for something now included implicitly. But maybe some effort was taken to avoid this, and it wouldn't be a tragedy anyway.

Tree-SHA512: 89de56edc6ceea4696e9579bccff10c80080821685b9fb4e8c5ef593b6e43cf662f358788701bb09f84867693f66b2e4db035b92b522a0a775f50b7ecffd6a6d
2021-12-12 16:44:54 -05:00
PastaPastaPasta
a7f5379e19
Merge pull request #4570 from kittywhiskers/miscports_again_again
merge bitcoin#15928...#16984: backports
2021-12-12 16:00:56 -05:00
Kittywhiskers Van Gogh
f2af35c92e merge bitcoin#16502: Drop unused OldKey 2021-12-12 22:36:50 +05:30
Kittywhiskers Van Gogh
1f61b27399 merge bitcoin#16475: Enumerate walletdb keys 2021-12-12 22:36:50 +05:30
Kittywhiskers Van Gogh
4bc0ae1ee2 merge bitcoin#16033: Hold cs_main when reading chainActive via getTipLocator(). Remove assumeLocked(). 2021-12-12 22:36:50 +05:30
Kittywhiskers Van Gogh
0187d2e597 merge bitcoin#15713: Replace chain relayTransactions/submitMemoryPool by higher method 2021-12-12 22:36:50 +05:30
Kittywhiskers Van Gogh
77d4c51507 merge bitcoin#15778: Move maxtxfee from node to wallet 2021-12-12 21:27:53 +05:30
Kittywhiskers Van Gogh
ed48a889bf merge bitcoin#15632: Remove ResendWalletTransactions from the Validation Interface 2021-12-12 21:27:51 +05:30
Kittywhiskers Van Gogh
c04f74b1d4 merge bitcoin#15680: Remove resendwallettransactions RPC method 2021-12-12 21:07:49 +05:30
Kittywhiskers Van Gogh
ee4f2fc8b4 merge bitcoin#15728: Refactor relay transactions 2021-12-12 21:07:49 +05:30
Kittywhiskers Van Gogh
e1a40e554c merge bitcoin#15588: Log the actual wallet file version and no longer publicly expose the "version" record 2021-12-12 19:46:11 +05:30
Kittywhiskers Van Gogh
fc6e35060d merge bitcoin#16796: Fix segfault in CreateWalletFromFile 2021-12-12 18:57:02 +05:30
Wladimir J. van der Laan
3d642e293b Merge #16397: doc: Clarify includeWatching for fundrawtransaction
80031045fc6435ef4eb5dd1aee773d938c57a0fd Clarify includeWatching for fundrawtransaction (Steven Roose)

Pull request description:

  Might be sufficient to solve https://github.com/bitcoin/bitcoin/issues/16396, https://github.com/bitcoin/bitcoin/issues/7879 and https://github.com/bitcoin/bitcoin/issues/14405.

ACKs for top commit:
  Sjors:
    ACK 8003104. This will always be confusing, but at least it gives a bunch more clues for the user to google.

Tree-SHA512: 9b8002c259c50f93d89fc5574105aae6152858d8d45c07b4c3d5b7023adafe73c7a98a290874ff3fbbb7dfad2ac1bdf4acb8769a2a1c14e38484922f44e84e54
2021-12-04 21:05:07 -05:00
MarcoFalke
60f98530d7 Merge #15744: refactor: Extract ParseDescriptorRange
510c6532ba Extract ParseDescriptorRange (Ben Woosley)

Pull request description:

  So as to be consistently informative when the checks fail, and
  to protect against unintentional divergence among the checks.

ACKs for commit 510c65:
  meshcollider:
    Oh apologies, yes. Thanks :) utACK 510c6532ba
  MarcoFalke:
    utACK 510c6532bae9abc5beda1c126c945923a64680cb
  sipa:
    utACK 510c6532bae9abc5beda1c126c945923a64680cb

Tree-SHA512: b1f0792bfaa163890a20654a0fc2c4c4a996659916bf5f4a495662436b39326692a1a0c825caafd859e48c05f5dd1865c4f7c28092be5074edda3c94f94f9f8b
2021-12-02 09:10:36 -08:00
MarcoFalke
f5e52489c7 Merge #15497: rpc: Consistent range arguments in scantxoutset/importmulti/deriveaddresses
ca253f6ebf Make deriveaddresses use stop/[start,stop] notation for ranges (Pieter Wuille)
1675b7ce55 Use stop/[start,stop] notation in importmulti desc range (Pieter Wuille)
4566011631 Add support for stop/[start,stop] ranges to scantxoutset (Pieter Wuille)
6b9f45e81b Support ranges arguments in RPC help (Pieter Wuille)
7aa6a8aefb Add ParseRange function to parse args of the form int/[int,int] (Pieter Wuille)

Pull request description:

  This introduces a consistent notation for RPC arguments in `scantxoutset`, `importmulti`, and `deriveaddresses`, either:
  * `"range" : int` to just specify the end of the range
  * `"range" : [int,int]` to specify both the begin and the end of the range.

  For `scantxoutset`, this is a backward compatible new feature. For the two other RPCs, it's an incompatible change, but neither of them has been in a release so far. Because of that non-released reason, this only makes sense in 0.18, in my opinion.

  I suggest this as an alternative to #15496, which only makes `deriveaddresses` compatible with `importmulti`, but not with the existing `scantxoutset` RPC. I also think `[int,int]` is more convenient than `{"start":int,"stop":int}`.

  I realize this is technically a feature added to `scantxoutset` after the feature freeze. If desired, I'll drop the `scantxoutset` changes.

Tree-SHA512: 1cbebb90cf34f106786dbcec7afbf3f43fb8b7e46cc7e6763faf1bc1babf12375a1b3c3cf86ee83c21ed2171d99b5a2f60331850bc613db25538c38b6a056676
2021-12-01 15:40:56 -08:00
UdjinM6
d6b9958310
Merge pull request #4586 from Munkybooty/backports-0.19-pr8
Backports 0.19 pr8
2021-11-30 14:12:24 +03:00
Vijay Manikpuri
b0b8b2d2a9
Merge #16278: tests: Remove unused includes (#4528)
9a841696c1e7147e259e5a387566e461abc144ec tests: Reduce compilation time and unneccessary recompiles by removing unused includes in tests (practicalswift)

Pull request description:

  Reduce compilation time and unneccessary recompiles by removing unused includes in tests.

  A subset of #16273 ("refactor: Reduce total compilation time by 2% and avoid unnecessary recompiles by removing unused includes") as requested by MarcoFalke in https://github.com/bitcoin/bitcoin/pull/16273#issuecomment-505022643.

ACKs for top commit:
  Sjors:
    ACK 9a84169 on macOS 10.14.5 (I rebased on #16289)

Tree-SHA512: bcb6ecffef689a9839bee1a5cb93abe83db1f30819a54226c5630fee456b5a5d187507d06861454adfda939c3556a975113f97662e415cb47fa0327ea4fd09fb

Co-authored-by: MarcoFalke <falke.marco@gmail.com>
2021-11-30 00:53:40 -05:00
PastaPastaPasta
f00a27ec97
Merge pull request #4566 from Munkybooty/backports-0.19-pr6
Backports 0.19 pr6
2021-11-30 00:44:25 -05:00
MarcoFalke
517021c93d Merge #15911: Use wallet RBF default for walletcreatefundedpsbt
d6b3640ac732f6f66a8cb6761084d1beecc8a876 [test] walletcreatefundedpsbt: check RBF is disabled when -walletrbf=0 (Sjors Provoost)
9ed062b5685eb6227d694572cb0f7bfbcc151b36 [doc] rpc: remove "fallback to" from RBF default help (Sjors Provoost)
4fcb698bc2bb74171cd3a14b94f9882d8e19e9fb [rpc] walletcreatefundedpsbt: use wallet default RBF (Sjors Provoost)

Pull request description:

  The `walletcreatefundedpsbt` RPC call currently ignores `-walletrbf` and defaults to not use RBF. This PR fixes that.

  This PR also replaces UniValue in `ConstructTransaction` with a `bool` in preparation of moving this helper method out of the RPC codebase entirely. This may be a bit overkill, but does slightly simplify it.

  Fixes #15878

ACKs for top commit:
  achow101:
    Code Review ACK d6b3640ac732f6f66a8cb6761084d1beecc8a876
  l2a5b1:
    re-ACK d6b3640
  MarcoFalke:
    ACK d6b3640ac732f6f66a8cb6761084d1beecc8a876

Tree-SHA512: 55b9bccd1ef36b54f6b34793017dc0721103099ad3761b3b04862291ee13d6915915d4dbb1a8567924fa56e5e95dfe10eec070e06701610e70c87f8ea92b2a00
2021-11-30 00:01:38 -05:00
MarcoFalke
0feb04ab6f Merge #16361: Remove redundant pre-TopUpKeypool check
96b6dd468a4cb6077d1a2267d620d99d39aac7d0 Remove redundant pre-TopUpKeypool checks (Gregory Sanders)

Pull request description:

  TopUpKeypool already has a quick check for `IsLocked()`

ACKs for top commit:
  achow101:
    ACK 96b6dd468a4cb6077d1a2267d620d99d39aac7d0 Reviewed the diff and checked that the `if (!IsLocked()) TopUpKeypool()` pattern is changed everywhere.

Tree-SHA512: 36f5ae1be611404656ac855763e569fd3b5e932db8170f39ebda74300aa02062774b2c28ce6cf00f2ccc0e3550de58df36efa9097e24f0a51f2809b8a489c95a
2021-11-29 23:10:31 -05:00
UdjinM6
f088d2eb9c
Merge #15186: rpc: remove duplicate solvable field from getaddressinfo (#4584)
a2a6c8f4535c0c3c5f05714d64b238fc5a839233 rpc: remove duplicate solvable field from getaddressinfo (fanquake)

Pull request description:

  Also added optional to `iscompressed`.

Tree-SHA512: 28442a9dbfb2a9992b9b57142fa13d374d39444f04ae63460cb6330d896160cfd4b9651a3e231893eac3142ce55eff597a54cbafd3b57ffa46d3711c64044acb

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
2021-11-29 07:44:56 +03:00
PastaPastaPasta
649273e703
Merge pull request #4564 from Munkybooty/backports-0.19-pr5
Backports 0.19 pr5
2021-11-20 15:37:35 -05:00
MarcoFalke
843a42d750 Merge #16063: rpc: Mention getwalletinfo where a rescan is triggered
be4efb165a rpc: Mention getwalletinfo where a rescan is triggered (João Barbosa)

Pull request description:

ACKs for commit be4efb:
  jonasschnelli:
    utACK be4efb165ab7ff5824de9a46aa06eca654b7513f
  sipa:
    utACK be4efb165ab7ff5824de9a46aa06eca654b7513f

Tree-SHA512: c9e5adda6fcb71dd64ad35cc5af89b0ed815aba440df26b61ef2018abd3b801c9e93cdbedf90db3938e88dc9af39f1577c4c7248bc77260d3afda5e2a0928e68
2021-11-18 15:57:22 -05:00
MarcoFalke
07fb94ec6e Merge #16071: RPC: Hint for importmulti in help output of importpubkey and importaddress
df0e97ccb1 RPC: Hint for importmulti in help output of importpubkey and importaddress (Kristaps Kaupe)

Pull request description:

  Similar to #12702. Hint for `importmulti` also in help output of `importpubkey` and `importaddress`.

ACKs for commit df0e97:
  promag:
    utACK df0e97ccb13a28825a2731b95d2bb17f355f6920.
  jonasschnelli:
    utACK df0e97ccb13a28825a2731b95d2bb17f355f6920

Tree-SHA512: db7358d7f4d463a50874e605bbca35a1a40dbefbb1d35cf51fe2f2aa34bef90c3ca398f4ffbcb9d7d43887a03eb8d81b6ef59066a3c7eda18a7eea876f6592e7
2021-11-18 15:57:21 -05:00
Wladimir J. van der Laan
6d6630d251 Merge #16252: test: Log to debug.log in all unit tests
fabc57e07dc34c103552cb51c9277bb48ef97739 test: Log to debug.log in all tests (MarcoFalke)
fa4a04a5a942d582c62773d815c7e1e9897975d0 test: use common setup in gui tests (MarcoFalke)
fad3d2a624377de4b0311e6ddd446c36dafd1ddc test: Create data dir in BasicTestingSetup (MarcoFalke)

Pull request description:

  This makes it easier to debug a frozen test or a test that failed. To debug a failed test, remove the line `fs::remove_all(m_path_root);`.

  The pull is done in three commits:
  * Create a datadir for every unit test once (and only once). This requires the `SetDataDir` function to go away.
  * Use the common setup in the gui unit tests. Some of those tests are testing the init sequence, so we'd have to undo some of what the testing setup did.
  * Log to the debug.log in all tests

ACKs for top commit:
  laanwj:
    ACK fabc57e07dc34c103552cb51c9277bb48ef97739

Tree-SHA512: 73444210b88172669e2cd22c2703a1e30e105185d2d5f03decbdedcfd09c64ed208d3716c59c8bebb0e44214cee5c8095e3e995d049e1572ee98f1017e413665
2021-11-18 15:30:54 -05:00
PastaPastaPasta
84ade683c1
Merge pull request #4535 from vijaydasmp/bp_19_3
Backport 15826, 15530, 16243, 15824, 16587, 16555, 16629, 16847, 16857, 14877
2021-11-17 15:48:33 -05:00
Kittywhiskers Van Gogh
d978259654
merge bitcoin#15638: Pull wallet code out of libbitcoin_server (#4560)
* merge 15638: Move CheckTransaction from lib_server to lib_consensus

* merge 15638: Move policy settings to new src/policy/settings unit

* merge 15638: Move rpc utility methods to rpc/util

* merge 15638: Move rpc rawtransaction util functions to rpc/rawtransaction_util.cpp

* merge 15638: Move several units into common libraries

* merge 15638: Move wallet load functions to wallet/load unit

* merge 15638: Document src subdirectories and different libraries

* [build] Add several util units (cleanup)

* build: resolve missing declarations by re-specifying headers
2021-11-16 10:19:47 -05:00
MarcoFalke
e4557b0067
Merge #14877: rpc: Document default values for optional arguments
fa0c24c96e rpc: Document default values for optional arguments (MarcoFalke)

Pull request description:

Tree-SHA512: e1f5ea67d7ac67526ae87bffaeb308a9ad68632e161fe0148cd431a340bb7a30def18f1dbc7e98c6c1c269ac8942fd5d5334c85c48e4fb1cead70a42536b6eef
2021-11-16 20:22:58 +05:30
MarcoFalke
b41e46416f
partial Merge #15530: doc: Move wallet lock annotations to header
faebd2ef40 doc: Move wallet lock annotations to header (MarcoFalke)

Pull request description:

  We put the annotations in a central place (the header) as opposed to spreading them over the cpp files, where they easily get outdated.

Tree-SHA512: 18d8c7329efd3471713de18fe8d63d67c50fcb9fa99bc372294d829aa7668ea33e10d44e9e50121a04d8cc3302d5fd7759224f7935451a4693c4498a555257e6
2021-11-16 07:13:30 +05:30
UdjinM6
a3a8bfee08
Merge pull request #4558 from kittywhiskers/wnsep
merge bitcoin#10973, #15039, #15288: separate wallet from node
2021-11-16 00:28:59 +03:00
UdjinM6
0e4ebdc4aa
Merge pull request #4481 from Munkybooty/backports-0.19-pr2
Backports 0.19 pr2
2021-11-15 23:34:23 +03:00
Kittywhiskers Van Gogh
6cc3648fae merge bitcoin#15779: Add wallet_balance benchmark 2021-11-14 15:32:50 +05:30
Kittywhiskers Van Gogh
438c93bd9a merge bitcoin#10973: separate wallet from node 2021-11-14 15:32:50 +05:30
Kittywhiskers Van Gogh
b30bc75a32 merge bitcoin#10221: Stop treating coinbase outputs differently in GUI 2021-11-14 15:32:38 +05:30
Kittywhiskers Van Gogh
2c98320c1a merge bitcoin#15288: Remove wallet -> node global function calls 2021-11-14 15:32:37 +05:30
Kittywhiskers Van Gogh
a97eebd068 merge bitcoin#15039: Avoid leaking nLockTime fingerprint when anti-fee-sniping 2021-11-14 15:24:24 +05:30
Kittywhiskers Van Gogh
365e5c4205 merge bitcoin#15039: Avoid leaking nLockTime fingerprint when anti-fee-sniping 2021-11-14 13:56:31 +05:30
PastaPastaPasta
4bf6dc07d4
Merge pull request #4567 from dzutte-cpp/merge_14987_14918
Merge bitcoin#14987 and bitcoin#14918
2021-11-13 15:15:11 -05:00
MarcoFalke
cc1f8db725 Merge #13926: [Tools] bitcoin-wallet - a tool for creating and managing wallets offline
3c3e31c3a4 [tests] Add wallet-tool test (João Barbosa)
49d2374acf [tools] Add wallet inspection and modification tool (Jonas Schnelli)

Pull request description:

  Adds an offline tool `bitcoin-wallet-tool` for wallet creation and maintenance.

  Currently this tool can create a new wallet file, display information on an existing wallet, and run the salvage and zapwallettxes maintenance tasks on an existing wallet. It can later be extended to support other common wallet maintenance tasks.

  Doing wallet maintenance tasks in an offline tool makes much more sense (and is potentially safer) than having to spin up a full node.

Tree-SHA512: 75a28b8a58858d9d76c7532db40eacdefc5714ea5aab536fb1dc9756e2f7d750d69d68d59c50a68e633ce38fb5b8c3e3d4880db30fe01561e07ce58d42bceb2b
2021-11-13 11:04:56 -05:00
Kittywhiskers Van Gogh
305b96e008
merge bitcoin#16097: Add Flags enum to ArgsManager class (#4569)
* merge bitcoin#16097: Check IsArgKnown() early

* merge bitcoin#16097: Refactor InterpretNegatedOption() function

* merge bitcoin#16097: Add Flags enum to ArgsManager

* scripted-diff: Use Flags enum in AddArg()

-BEGIN VERIFY SCRIPT-
sed -i 's/const bool debug_only,/unsigned int flags, &/' src/util/system.h src/util/system.cpp
sed -i -E 's/(true|false), OptionsCategory::/ArgsManager::ALLOW_ANY, &/' $(git grep --files-with-matches 'AddArg(' src)
-END VERIFY SCRIPT-

* scripted-diff: Use ArgsManager::DEBUG_ONLY flag

-BEGIN VERIFY SCRIPT-
sed -i 's/unsigned int flags, const bool debug_only,/unsigned int flags,/' src/util/system.h src/util/system.cpp
sed -i 's/ArgsManager::NONE, debug_only/flags, false/' src/util/system.cpp
sed -i 's/arg.second.m_debug_only/(arg.second.m_flags \& ArgsManager::DEBUG_ONLY)/' src/util/system.cpp
sed -i 's/ArgsManager::ALLOW_ANY, true, OptionsCategory::/ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::/' $(git grep --files-with-matches 'AddArg(' src)
sed -i 's/ArgsManager::ALLOW_ANY, false, OptionsCategory::/ArgsManager::ALLOW_ANY, OptionsCategory::/' $(git grep --files-with-matches 'AddArg(' src)
-END VERIFY SCRIPT-

* merge bitcoin#16097: Remove unused m_debug_only member from Arg struct

* merge bitcoin#16097: Use ArgsManager::NETWORK_ONLY flag

* merge bitcoin#16097: Replace IsArgKnown() with FlagsOfKnownArg()

* merge bitcoin#16097: Revamp option negating policy

* merge bitcoin#16097: Make tests arg type specific
2021-11-12 19:25:46 -05:00
Dzutte
85537e4532 Dash-specific changes to support RPCHelpMan improvements
Signed-off-by: Dzutte <dzutte.tomsk@gmail.com>
2021-11-09 15:39:22 -08:00
MarcoFalke
2ff928c850 Merge #14918: RPCHelpMan: Check default values are given at compile-time
fa0ad4e7ce RPCHelpMan: Check default values are given at compile-time (MarcoFalke)

Pull request description:

  Remove the run time assertions on the default values and ensure that the correct default type and value is provided at compile time.

Tree-SHA512: 80df2f3fab4379b500c773c27da63f22786c58be5963fe99744746320e43627a5d433eedf8b32209158df7805ebdce65ed4d242c829c4fe6e5d13deb4799ed42
2021-11-09 15:24:51 -08:00
MarcoFalke
57841be492 Merge #14987: RPCHelpMan: Pass through Result and Examples
faa1522e5e RPCHelpMan: Pass through Result and Examples (MarcoFalke)

Pull request description:

  Passing the rpc result and rpc examples through `RPCHelpMan` makes it clear in what order they appear in the stringified version. Future improvements could then autoformat or autogenerate them.

Tree-SHA512: b32a5c178cc80f50a7e9b93a38e2b26d5994188ecafe9e61bbc599941b44b9b0e4e4be6413d4464fac6e8e73661a191a77d34917f2e6293de19fb59519dd4487
2021-11-09 15:24:51 -08:00
Wladimir J. van der Laan
5d12f44d55 Partial Merge #16144: wallet: do not encrypt wallets with disabled private keys
7860c98bd wallet: do not encrypt wallets with disabled private keys (whythat)

Pull request description:

  Fix for #15635.
  Throw an `RPC_WALLET_ENCRYPTION_FAILED` error when attempting to encrypt wallet with disabled private keys. Changed `test/function/wallet_createwallet.py` to test new behavior.

ACKs for commit 7860c9:
  achow101:
    utACK 7860c98bd59cd8f56e9b2b4ae45265c046e7cfd9
  meshcollider:
    utACK 7860c98bd5

Tree-SHA512: d0cc40efd303a00d0b4d3cb2de59d8d2d7dd35647e7f3fe9d4a8986589499c1f567c5780c83a129e1ab8dbe601279c459c6ebce3b48b1d81d47a28616ef4a369
2021-11-09 14:08:49 -05:00
UdjinM6
cb7efbf825
Merge pull request #4561 from PastaPastaPasta/develop-trivial-2021-10-30
backport trivial 2021 10 30
2021-11-03 19:28:09 +03:00
MarcoFalke
2d30d33811
Merge #21125: test: Change BOOST_CHECK to BOOST_CHECK_EQUAL for paths
059e8ccc1eba6cd92f4c434325cb56b0533eb744 Change BOOST_CHECK to BOOST_CHECK_EQUAL to see mismatched values when a check fails. (Kiminuo)

Pull request description:

  This is useful to see mismatched values when a check fails as specified in the [Boost documentation](https://www.boost.org/doc/libs/1_71_0/libs/test/doc/html/boost_test/utf_reference/testing_tool_ref/assertion_boost_level.html).

  This PR would make #20744 PR's diff smaller by a bit.

ACKs for top commit:
  MarcoFalke:
    review ACK 059e8ccc1eba6cd92f4c434325cb56b0533eb744
  theStack:
    Code Review ACK 059e8ccc1eba6cd92f4c434325cb56b0533eb744

Tree-SHA512: 82359ef38e0d1926f12a34aeff6fde6d1d307c703a080547749b908f873c2a2f894f6f094c33470b32987c229e3a1f17f7d1e877663c53293c023bde0e7272c1
2021-11-03 12:24:06 -04:00
MarcoFalke
0bc782dfcb
partial Merge #15855: [refactor] interfaces: Add missing LockAnnotation for cs_main
fa3c651143 [refactor] interfaces: Add missing LockAnnotation for cs_main (MarcoFalke)

Pull request description:

  This adds missing `LockAnnotation lock(::cs_main);` to `src/interfaces/chain.cpp` (as well as tests and  benchmarks)

ACKs for commit fa3c65:
  practicalswift:
    utACK fa3c6511435149782545ac0d09d4722dc115d709
  ryanofsky:
    utACK fa3c6511435149782545ac0d09d4722dc115d709

Tree-SHA512: b67082fe3718c94b4addf7f2530593915225c25080f20c3ffa4ff7e08f1f49548f255fb285f89a8feff84be3f6c91e1792495ced9f6bf396732396d1356d597a
2021-11-02 23:49:10 -04:00
MarcoFalke
dfa040e9b9
Merge #15342: Suggested wallet code cleanups from #14711
aebafd0edf Rename Chain getLocator -> getTipLocator (Russell Yanofsky)
2c1fbaa771 Drop redundant get_value_or (Russell Yanofsky)
84adb206fc Fix ScanForWalletTransactions start_block comment (Russell Yanofsky)
2efa66b464 Document rescanblockchain returned stop_height being null (Russell Yanofsky)
db2d093233 Add suggested rescanblockchain comments (Russell Yanofsky)
a8d645c934 Update ScanForWalletTransactions result comment (Russell Yanofsky)
95a812b599 Rename ScanResult stop_block field (Russell Yanofsky)

Pull request description:

  This implements suggested changes from #14711 review comments that didn't make make it in before merging.

  There are no changes in behavior in this PR, just documentation updates, simplifications, and variable renames.

Tree-SHA512: 39f1a5718195732b70b5e427c3b3e4295ea5af6328a5991763a422051212dfb95383186db0c0504ce2c2782fb61998dfd2fe9851645b7cb4e75d849049483cc8

# Conflicts:
#	src/interfaces/chain.cpp
#	src/qt/test/wallettests.cpp
#	src/wallet/test/wallet_tests.cpp
#	src/wallet/wallet.cpp
2021-11-02 23:49:09 -04:00
MeshCollider
48826b429d
Merge #14711: Remove uses of chainActive and mapBlockIndex in wallet code
44de1561a Remove remaining chainActive references from CWallet (Russell Yanofsky)
db21f0264 Convert CWallet::ScanForWalletTransactions and SyncTransaction to the new Chain apis (Russell Yanofsky)
2ffb07929 Add findFork and findBlock to the Chain interface (Russell Yanofsky)
d93c4c1d6 Add time methods to the Chain interface (Russell Yanofsky)
700c42b85 Add height, depth, and hash methods to the Chain interface (Russell Yanofsky)

Pull request description:

  This change removes uses of `chainActive` and `mapBlockIndex` globals in wallet code. It is a refactoring change which does not affect external behavior.

  This is the next step in the larger #10973 refactoring change, which removes all other accesses to node global variables from wallet code. Doing this is useful to provide a better defined interface between the wallet and node, and necessary to allow wallet and node code to run in separate processes in #10102.

Tree-SHA512: 4dcec8a31c458f54e2ea6ecf01e430469b0994c5b41a21a2d150efa67cd209f4c93ae210a101e064b3a87c52c6edfc70b070e979992be0e3a00fd425de6230a8
2021-11-02 23:49:09 -04:00
UdjinM6
bbe9b3d1e0
Merge pull request #4494 from kittywhiskers/descaddr
merge bitcoin#14150, #14477, #14646, #14667, #14886, #14565, #14491, #15368: descriptors
2021-11-01 18:25:32 +03:00
Kittywhiskers Van Gogh
3c63ffa68c merge bitcoin#15368: Descriptor checksums 2021-10-28 14:01:02 +05:30
Kittywhiskers Van Gogh
b866be5f04 merge bitcoin#14491: Allow descriptor imports with importmulti 2021-10-28 13:22:04 +05:30
Kittywhiskers Van Gogh
06037f6ba7 merge bitcoin#14565: Overhaul importmulti logic 2021-10-28 11:00:15 +05:30
Kittywhiskers Van Gogh
49522bddb4 merge bitcoin#14477: Add ability to convert solvability info to descriptor 2021-10-28 10:56:06 +05:30
Dzutte
60c5f9b0d5
Remove unused change_type argument of walletcreatedfundedpsbt (#4550)
This argument has been added by mistake and is not in use by Dash.

Signed-off-by: Dzutte <dzutte.tomsk@gmail.com>
2021-10-26 23:16:04 +03:00
UdjinM6
eb95f83096
Merge pull request #4540 from PastaPastaPasta/backport-new-wallet
Backport 15153, 15195
2021-10-25 23:04:50 +03:00
UdjinM6
61a69cf09b
Merge pull request #4511 from kittywhiskers/bench
merge bitcoin#13219...#15779: benchmarks
2021-10-25 22:58:54 +03:00
MarcoFalke
e0e2a2e3fe
Merge #15352: tests: Reduce noise level in test_bitcoin output
0aef39d067 Silence "Test case [...] did not check any assertions" warnings when running "test_bitcoin --log_level=test_suite" (practicalswift)
5fd73c8694 Avoid repeated log messages in tests by connecting to signal handlers (ThreadSafeMessageBox, etc.) only once (practicalswift)
e502c3c515 tests: Reduce noise level in test_bitcoin output (practicalswift)

Pull request description:

  Reduce noise level in `test_bitcoin` output.

  Context: When working on the non-determinism issues in the unit tests (see #15296) I got a bit tired of the amount of noise in the `test_bitcoin` output :-)

  Before:

  ```
  $ src/test/test_bitcoin --log_level=test_suite 2>&1 | grep -vE '(Entering|Leaving)' | uniq -c
        1 Running 341 test cases...
        1 Test case blockencodings_tests/TransactionsRequestDeserializationOverflowTest did not check any assertions
        1 CheckSplitTorReplyLine(PROTOCOLINFO PIVERSION)
        1 CheckSplitTorReplyLine(AUTH METHODS=COOKIE,SAFECOOKIE COOKIEFILE="/home/x/.tor/control_auth_cookie")
        1 CheckSplitTorReplyLine(AUTH METHODS=NULL)
        1 CheckSplitTorReplyLine(AUTH METHODS=HASHEDPASSWORD)
        1 CheckSplitTorReplyLine(VERSION Tor="0.2.9.8 (git-a0df013ea241b026)")
        1 CheckSplitTorReplyLine(AUTHCHALLENGE SERVERHASH=aaaa SERVERNONCE=bbbb)
        1 CheckSplitTorReplyLine(COMMAND)
        1 CheckSplitTorReplyLine(COMMAND SOME  ARGS)
        1 CheckSplitTorReplyLine(COMMAND  ARGS)
        1 CheckSplitTorReplyLine(COMMAND   EVEN+more  ARGS)
        1 CheckParseTorReplyMapping(METHODS=COOKIE,SAFECOOKIE COOKIEFILE="/home/x/.tor/control_auth_cookie")
        1 CheckParseTorReplyMapping(METHODS=NULL)
        1 CheckParseTorReplyMapping(METHODS=HASHEDPASSWORD)
        1 CheckParseTorReplyMapping(Tor="0.2.9.8 (git-a0df013ea241b026)")
        1 CheckParseTorReplyMapping(SERVERHASH=aaaa SERVERNONCE=bbbb)
        1 CheckParseTorReplyMapping(ServiceID=exampleonion1234)
        1 CheckParseTorReplyMapping(PrivateKey=RSA1024:BLOB)
        1 CheckParseTorReplyMapping(ClientAuth=bob:BLOB)
        1 CheckParseTorReplyMapping(Foo=Bar=Baz Spam=Eggs)
        1 CheckParseTorReplyMapping(Foo="Bar=Baz")
        1 CheckParseTorReplyMapping(Foo="Bar Baz")
        1 CheckParseTorReplyMapping(Foo="Bar\ Baz")
        1 CheckParseTorReplyMapping(Foo="Bar\Baz")
        1 CheckParseTorReplyMapping(Foo="Bar\@Baz")
        1 CheckParseTorReplyMapping(Foo="Bar\"Baz" Spam="\"Eggs\"")
        1 CheckParseTorReplyMapping(Foo="Bar\\Baz")
        1 CheckParseTorReplyMapping(Foo="Bar\nBaz\t" Spam="\rEggs" Octals="\1a\11\17\18\81\377\378\400\2222" Final=Check)
        1 CheckParseTorReplyMapping(Valid=Mapping Escaped="Escape\\")
        1 CheckParseTorReplyMapping(Valid=Mapping Bare="Escape\")
        1 CheckParseTorReplyMapping(OneOctal="OneEnd\1" TwoOctal="TwoEnd\11")
        1 CheckParseTorReplyMapping(Null="\0")
        1 CheckParseTorReplyMapping(SOME=args,here MORE optional=arguments  here)
        1 CheckParseTorReplyMapping(ARGS)
        1 CheckParseTorReplyMapping(MORE ARGS)
        1 CheckParseTorReplyMapping(MORE  ARGS)
        1 CheckParseTorReplyMapping(EVEN more=ARGS)
        1 CheckParseTorReplyMapping(EVEN+more ARGS)
        1 Test case util_tests/util_criticalsection did not check any assertions
        1 Testing known outcomes
      326 Error: Specified -walletdir "/tmp/test_bitcoin/1553850209_943311758/tempdir/path_does_not_exist" does not exist
      327 Error: Specified -walletdir "/tmp/test_bitcoin/1553850209_643733972/tempdir/not_a_directory.dat" is not a directory
      328 Error: Specified -walletdir "wallets" is a relative path
        1
        1 *** No errors detected

  ```

  After:

  ```
  $ src/test/test_bitcoin --log_level=test_suite 2>&1 | grep -vE '(Entering|Leaving)' | uniq -c
        1 Running 341 test cases...
        1 Error: Specified -walletdir "/tmp/test_bitcoin/1553850026_943311758/tempdir/path_does_not_exist" does not exist
        1 Error: Specified -walletdir "/tmp/test_bitcoin/1553850026_643733972/tempdir/not_a_directory.dat" is not a directory
        1 Error: Specified -walletdir "wallets" is a relative path
        1
        1 *** No errors detected

  ```

ACKs for commit 0aef39:
  MarcoFalke:
    utACK 0aef39d0678ec2f26633028d44eea0ba0087e7c0

Tree-SHA512: 9cc22f64aa5c875861bae6533d18675ad978c623f053754deef6a8e271ea70bda3f72fb4ec5c8fd19b841757f21380639051d5f5b44301b9d2464b57655e9c05
2021-10-25 12:20:19 -04:00
Kittywhiskers Van Gogh
ad203019f9 merge bitcoin#15788: Unify testing setups for fuzz, bench, and unit tests 2021-10-25 21:28:37 +05:30
PastaPastaPasta
c2fa9af2d1
Merge #14957: wallet: Initialize stop_block in CWallet::ScanForWalletTransactions (#4538)
* Merge #14957: wallet: Initialize stop_block in CWallet::ScanForWalletTransactions

8b9171ccf wallet: Initialize stop_block to nullptr in CWallet::ScanForWalletTransactions (Ben Woosley)

Pull request description:

  Previously the argument would be untouched if the first block scan failed. This
  makes the behavior predictable, and consistent with the documentation.

Tree-SHA512: 3efadf9fd5e25ecd9450f32545f58e61a123ad883e921ef427b13e4782ffdd8ffe905c9ad3edc7e8f9e4953342cd72247bb4cc9eeaf9e5fd04291ac5c1bb5eec

# Conflicts:
#	src/wallet/test/wallet_tests.cpp

* Add lock annotation

* fix

Co-authored-by: MeshCollider <dobsonsa68@gmail.com>
2021-10-25 17:32:11 +03:00
PastaPastaPasta
7b78390015
refactor: Include adjustments (#4526)
* include adjustments

* fix macOs build failure

Signed-off-by: pasta <pasta@dashboost.org>

* expcitly include array in spork.h

* sort includes in most files
2021-10-25 16:55:34 +03:00
UdjinM6
81cc1a0a9d
Merge pull request #4525 from dzutte-cpp/merge_14796_14885_14875
Merge bitcoin#14796, #14885 and #14875
2021-10-25 16:52:02 +03:00
Kittywhiskers Van Gogh
f1a2cdb680
merge bitcoin#15855: Add missing LockAnnotation for cs_main (#4530)
* merge bitcoin#15855: Add missing LockAnnotation for cs_main

* mutex: update cs_main locks, assertions and annotations

This commit is a squash between 8c98823 and 90d0535
2021-10-25 16:14:34 +03:00
PastaPastaPasta
a8769a3cda
Merge bitcoin#16205: Refactor: Replace fprintf with tfm::format (#4531)
* tinyformat: Add doc to Bitcoin Core specific strprintf

* scripted-diff: Replace fprintf with tfm::format

-BEGIN VERIFY SCRIPT-
sed -i --regexp-extended -e 's/fprintf\(std(err|out), /tfm::format(std::c\1, /g' $(git grep -l 'fprintf(' -- ':(exclude)src/crypto' ':(exclude)src/leveldb' ':(exclude)src/univalue' ':(exclude)src/secp256k1')
-END VERIFY SCRIPT-

* Replace remaining fprintf with tfm::format manually

* fixes

Co-authored-by: MarcoFalke <falke.marco@gmail.com>
2021-10-24 13:51:47 +03:00
Jonas Schnelli
1aa84f8a3b
Merge #15153: gui: Add Open Wallet menu
1951ea434 gui: Show indeterminate progress dialog while opening walllet (João Barbosa)
8847cdaaa gui: Add OpenWalletActivity (João Barbosa)
4c8982a88 interfaces: Avoid interface instance if wallet is null (João Barbosa)
be82dea23 gui: Add thread to run background activity in WalletController (João Barbosa)
6c49a55b4 gui: Add Open Wallet menu (João Barbosa)
32a8c6abf gui: Add openWallet and getWalletsAvailableToOpen to WalletController (João Barbosa)
ab288b4e5 interfaces: Add loadWallet to Node (João Barbosa)
17abc0fd5 wallet: Factor out LoadWallet (João Barbosa)

Pull request description:

  The *Open Wallet* menu has all the available wallets currently not loaded. The list of the available wallets comes from `listWalletDir`.

  In the future the menu can be replaced by a custom dialog.

  <img width="674" alt="screenshot 2019-01-12 at 12 17 02" src="https://user-images.githubusercontent.com/3534524/51073166-ac041480-1664-11e9-8302-be81702bc146.png">

Tree-SHA512: ebfd75eee0c8264863748899843afab67dadb7dff21313c11e3cb5b6108d954978dd1f1ae786bc07580c5a771ea4ab38d18c1643c9b9b3683ed53f0f6c582e38
2021-10-23 18:51:22 -04:00
Dzutte
bbb9949dc1 Dash-specific changes to pass argument descriptions to RPCHelpMan
Signed-off-by: Dzutte <dzutte.tomsk@gmail.com>
2021-10-22 09:48:25 -07:00
MarcoFalke
becabf641d Merge #14796: rpc: Pass argument descriptions to RPCHelpMan
fabca42c68 RPCHelpMan: Add space after colons in extended description (MarcoFalke)
fafd040f73 rpc: Add description to fundrawtransaction vout_index (MarcoFalke)
1db0096f61 rpc: Pass argument descriptions to RPCHelpMan (MarcoFalke)

Pull request description:

  This will normalize the type names and formatting for the rpc arguments

Tree-SHA512: 6ab344882f0fed36046ab4636cb2fa5d2479c6aae22666ca9a0d067edbb9eff8de98010ad97c8ce40ab532d15d1ae67120a561b0bf3da837090d7de427679f4f
2021-10-22 09:48:25 -07:00
Kittywhiskers Van Gogh
a620d941d3 merge bitcoin#16194: share blockmetadata with BlockManager
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-10-22 08:15:38 +05:30
Kittywhiskers Van Gogh
1bb1cea5c9 merge bitcoin#15976: move methods under CChainState
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-10-22 08:15:38 +05:30
Kittywhiskers Van Gogh
1f436f8aee merge bitcoin#15948: rename chainActive
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-10-22 08:15:22 +05:30
PastaPastaPasta
dc93063857
Merge pull request #4499 from vijaydasmp/backport_v18_vijay_batch4_3
merge bitcoin#13258, #14951
2021-10-21 17:27:51 -04:00
Wladimir J. van der Laan
d0724b5ee1
Merge #13258: uint256: Remove unnecessary crypto/common.h dependency
bf2e01097 uint256: Remove unnecessary crypto/common.h use (Karl-Johan Alm)

Pull request description:

  This is an alternative to #13242 which keeps the `ReadLE64` part, but moves the `crypto/common.h` dependency into `crypto/common.h` as a function outside of `uint256`.

  **Reason:** this change will remove dependencies for `uint256` to `crypto/common.h`, `compat/endian.h`, and `compat/byteswap.h`.

  This PR removes the need to update tests to be endian-aware/-independent, but keeps the (arguably dubious) `ReadLE64` part (which was only introduced to fix the tests, not for any functionality).

Tree-SHA512: 78b35123cdb185b3b3ec59aba5ca8a5db72624d147f2d6a5484ffa5ce626a72f782a01dc6893fc8f5619b03e2eae7b5a03b0df5d43460f3bda428e719e188aec
2021-10-21 17:41:33 +05:30
Kittywhiskers Van Gogh
07632958cb
merge bitcoin#16277: suppress output in test_bitcoin for expected errors 2021-10-20 12:29:45 -04:00
PastaPastaPasta
ff22aa299a
Merge #14437: Refactor: Start to separate wallet from node 2021-10-20 12:29:45 -04:00
PastaPastaPasta
76af0435ca Merge #14146: wallet: Remove trailing separators from -walletdir arg
2d471636eb9160ab51b08e491e3f003f57adbc36 wallet: Remove trailing separators from -walletdir arg (Pierre Rochard)
ea3009ee942188750480ca6cc273b2b91cf77ded wallet: Add walletdir arg unit tests (Pierre Rochard)

Pull request description:

  If a user passes in a path with a trailing separator as the `walletdir`, multiple BerkeleyEnvironments may be created in the same directory which can lead to data corruption.

  Discovered while reviewing https://github.com/bitcoin/bitcoin/pull/12493#issuecomment-417147646

Tree-SHA512: f2bbf1749d904fd3f326b88f2ead58c8386034355910906d7faea155d518642e9cd4ceb3cae272f2d9d8feb61f126523e1c97502799d24e4315bb53e49fd7c09
2021-10-16 10:27:36 +05:30
UdjinM6
38dee8b361
Merge pull request #4482 from christiancfifi/backports_pr2
Backports 15747, 15532, 14556, 14594, 15136, 20491, 14715
2021-10-15 13:26:43 +03:00
Christian Fifi Culp
fa8300f6cc Extend #15747: Remove some Dash Get*Balance 2021-10-14 10:06:57 -05:00
MeshCollider
f43b8216b1 Merge #15747: wallet: Remove plethora of Get*Balance
fa57411fc wallet: Get all balances in one call (MarcoFalke)

Pull request description:

  The wallet provides a getter for each "type" of balance. However, a single iteration over `mapWallet` is sufficient to calculate all types of balances.

ACKs for commit fa5741:
  Empact:
    utACK fa57411fcb
  promag:
    utACK fa57411.
  MeshCollider:
    utACK fa57411fcb

Tree-SHA512: 38b7f346ec95d2604a4d32f4caef2841b8fe59511d2d23890ba3dc497bb2f45eb6be87d12eb004005cad16e9fea83ae6e3000f2197c7a677a07debdb457064a2
2021-10-13 23:44:55 -05:00
UdjinM6
87818b2384
cleanup: 4492 followup (#4521) 2021-10-13 22:37:54 +03:00
UdjinM6
2a5b5bb32a
Merge pull request #4504 from kittywhiskers/explicit_ref
merge bitcoin #13013, #14908, #14906: Make explicit CMutableTransaction -> CTransaction conversion
2021-10-13 17:47:53 +03:00
Kittywhiskers Van Gogh
ee705af2cd merge bitcoin#14906: Make explicit CMutableTransaction -> CTransaction conversion 2021-10-12 08:58:08 +05:30
PastaPastaPasta
628c6160b6
Cxx17 refac ci trivial (#4507)
* guard gmtime_r with HAVE_GMTIME_R properly

* resolve dash-cppcheck linter error

* Mark stuff as override to resolve compiler warnings

Co-authored-by: Wladimir J. van der Laan <laanwj@protonmail.com>
2021-10-12 00:55:49 +03:00
Dzutte
0f2e8aa504
Merge bitcoin#14726: Use RPCHelpMan for all RPCs (#4492)
* Merge #14726: Use RPCHelpMan for all RPCs

fa5e0452e875a7ca6bf6fe61fdd652d341eece40 rpc: Documentation fixups (MarcoFalke)
fa91e8eda541acdb78ca481b74605639f319c108 Use RPCHelpMan for all RPCs (MarcoFalke)
fa520e72f7b5964cea1ade666e71212914556cf3 lint: Must use RPCHelpMan to generate the RPC docs (MarcoFalke)

Pull request description:

  The resulting documentation should not change unless the type in the oneline-summary was previously incorrect. (E.g. string vs bool)

Tree-SHA512: 4ff355b6a53178f02781e97a7aca7ee1d0d97ff348b6bf5a01caa1c96904ee33c704465fae54c2cd7445097427fd04c71ad3779bb7a7ed886055ef36c1b5a1d0

* Dash-specific changes to support RPCHelpMan with RPC commands

Signed-off-by: Dzutte <dzutte.tomsk@gmail.com>

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
2021-10-12 00:55:23 +03:00
UdjinM6
fc6d76dae8
Merge pull request #4480 from kittywhiskers/llmqrefac
refactor: remove redundant filename prefixes in llmq source filenames, move params
2021-10-10 21:59:13 +03:00
Wladimir J. van der Laan
2833db6e0b
Merge #14008: Preserve a format of RPC command definitions
d9d79576f423cd9c5cef4547c7e3648dbb339460 Preserve a format of RPC command definitions (Kostiantyn Stepaniuk)

Pull request description:

  Currently, RPC commands are formatted in a way that it's easy to read
  and that `test/lint/check-rpc-mappings.py` can parse it.

  To void breaking `test/lint/check-rpc-mappings.py` script by running
  `clang-format`, RPC command definitions should be disabled for clang-format.

Tree-SHA512: e17d20ec0e6c4e19410198b55687ebbe6fa01654d214d4578cd16c00b872bf8b0b306594a45523685cd2e9d9280702e00471d9366e87954428e8bbeacd8cad60
2021-10-08 19:13:56 +05:30
Kittywhiskers Van Gogh
f22be5a16b refactor: llmq/quorums_*[cpp/h] --> llmq/*.[cpp/h] 2021-10-06 09:04:45 +05:30
Kittywhiskers Van Gogh
cb1d4766f5
refactor: remove redundant filename prefixes for Dash-specific logic (#4475)
* refactor: coinjoin/coinjoin-*[cpp/h] --> coinjoin/*.[cpp/h]

* refactor: governance/governance-*[cpp/h] --> governance/*.[cpp/h]

* refactor: masternode/masternode-*[cpp/h] --> masternode/*.[cpp/h]

* fix linter

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-10-01 22:19:08 +03:00
Wladimir J. van der Laan
8b47451341 Merge #14268: Introduce SafeDbt to handle Dbt with free or memory_cleanse raii-style
4a86a0acd9ac3ca392f0584a5fd079a856e5e4ba Make SafeDbt DB_DBT_MALLOC on default initialization (Ben Woosley)
1a9f9f7e5e2e73fb832f5b96ad7e9e57954f3f3c Introduce SafeDbt to handle DB_DBT_MALLOC raii-style (Ben Woosley)
951a44e9cd6cf2b8058244f3f95181c5ba683fdd Drop unused setRange arg to BerkeleyBatch::ReadAtCursor (Ben Woosley)

Pull request description:

  This provides additional exception-safety and case handling for the proper
  freeing of the associated buffers.

Tree-SHA512: a038d728290cdb3905e7d881608052a6675b6425729ceaf7cfe69a6e91c2ee293cdb01e4b695a20963459ffdd9d4a1f9a08b3c07b1b5ba1aa8590a8149f686db
2021-09-30 17:02:16 -07:00
Wladimir J. van der Laan
38d928e9c6 Merge #14094: refactoring: Remove unreferenced local variables
8ecaee13f70a2062e88a977c950a65d3a2de560f Increase signal to noise in appveyor build output by reducing the MSVC warning count from 12 to 4 (12 is assuming the changes in #14086 are also implemented). (practicalswift)

Pull request description:

  Remove unreferenced local variables:

  Increase signal to noise in appveyor build output by reducing the MSVC warning count from 12 to 4. 12 is the number of MSVC warnings under our current appveyor setup assuming the changes in #14086 are also implemented.

  This makes it easier to spot errors or more important warnings in the verbose appveyor output. MSVC warnings are good, so having access to them in a noise free way (read: without trivial warnings) via appveyor without having to use Windows is really valuable.

  See https://github.com/bitcoin/bitcoin/pull/14086#issuecomment-416610313 plus discussion for context.

  Before:

  ```
  c:\projects\bitcoin\src\script\script.cpp(272): warning C4018: '>': signed/unsigned mismatch [C:\projects\bitcoin\build_msvc\libbitcoinconsensus\libbitcoinconsensus.vcxproj]
  c:\projects\bitcoin\src\rest.cpp(467): warning C4101: 'e': unreferenced local variable [C:\projects\bitcoin\build_msvc\libbitcoin_server\libbitcoin_server.vcxproj]
  c:\projects\bitcoin\src\test\allocator_tests.cpp(147): warning C4312: 'reinterpret_cast': conversion from 'int' to 'void *' of greater size [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  c:\projects\bitcoin\src\test\coins_tests.cpp(511): warning C4101: 'e': unreferenced local variable [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  c:\projects\bitcoin\src\test\coins_tests.cpp(524): warning C4101: 'e': unreferenced local variable [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  c:\projects\bitcoin\src\test\coins_tests.cpp(722): warning C4101: 'e': unreferenced local variable [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  c:\projects\bitcoin\src\test\coins_tests.cpp(783): warning C4101: 'e': unreferenced local variable [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  c:\projects\bitcoin\src\test\crypto_tests.cpp(535): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  c:\projects\bitcoin\src\test\dbwrapper_tests.cpp(265): warning C4101: 'e': unreferenced local variable [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  c:\projects\bitcoin\src\test\net_tests.cpp(118): warning C4101: 'e': unreferenced local variable [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  c:\projects\bitcoin\src\test\net_tests.cpp(151): warning C4101: 'e': unreferenced local variable [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  c:\projects\bitcoin\src\test\scheduler_tests.cpp(57): warning C4305: 'argument': truncation from 'int' to 'bool' [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  ```

  After:

  ```
  c:\projects\bitcoin\src\script\script.cpp(272): warning C4018: '>': signed/unsigned mismatch [C:\projects\bitcoin\build_msvc\libbitcoinconsensus\libbitcoinconsensus.vcxproj]
  c:\projects\bitcoin\src\test\allocator_tests.cpp(147): warning C4312: 'reinterpret_cast': conversion from 'int' to 'void *' of greater size [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  c:\projects\bitcoin\src\test\crypto_tests.cpp(535): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  c:\projects\bitcoin\src\test\scheduler_tests.cpp(57): warning C4305: 'argument': truncation from 'int' to 'bool' [C:\projects\bitcoin\build_msvc\test_bitcoin\test_bitcoin.vcxproj]
  ```

Tree-SHA512: 5051134126c570b8421d57c710f1f1b977600398d2b5e69f8a8bd766b3696f992bf4e3459643b99a6b7e08dee1adc92985ee4d0d52b20755954415cb6f23f2fb
2021-09-30 16:18:49 -07:00
MarcoFalke
a9ce72a8bb Merge #15408: Remove unused TransactionError constants
fa9b60c842 Remove unused TransactionError constants (MarcoFalke)

Pull request description:

  Fixup to #14978, which introduced a bunch of unused enum values, such as `UNKNOWN_ERROR`, `ERROR_COUNT` and `TRANSACTION_ERR_LAST`. None of those have a meaning in the context of an `enum class`, where the compiler can infer if all cases have been covered in a switch-case.

  Also, move the global `::maxTxFee` back to the rpc caller, so it can be set on a per call basis (in the future).

Tree-SHA512: 7f1e2d795f1c1278ecd54ddab2b92c2a862f3c637b482d1d008208925befa1c9dd4b3c4bb1bfcbc5ca4b66a41004aaf01ea96ea95236f944250b8a6cf99ff173
2021-09-30 16:18:49 -07:00
PastaPastaPasta
2f845d8074
Merge pull request #4469 from pravblockc/backports-v0.19-pr2
Backports #15853 #15463 and #16073
2021-09-30 10:34:56 -04:00
MarcoFalke
9577ca7b25 Merge #15463: rpc: Speedup getaddressesbylabel
710a7136f9 rpc: Speedup getaddressesbylabel (João Barbosa)

Pull request description:

  Fixes #15447. Same approach of #14984, this change avoids duplicate key check when building the JSON response in memory.

ACKs for commit 710a71:
  MarcoFalke:
    utACK 710a7136f93133bf256d37dc8c8faf5a6b9ba89d
  ryanofsky:
    utACK 710a7136f93133bf256d37dc8c8faf5a6b9ba89d. Just new comments and assert since last review.

Tree-SHA512: 77c95df9ff3793e348619aa070e6fd36df9da1b461d708ab146652cb3699f1a472ef6eb38dafdb8374375cbc97daef07635fcb0501961f167a023309513742e2
2021-09-28 23:52:09 -03:00
UdjinM6
2e0c51648a
Merge pull request #4456 from PastaPastaPasta/develop-trivial-2021-09-24
backport trivial 17553, 18596, 15782, 16051
2021-09-28 23:58:11 +03:00
PastaPastaPasta
908b6e6535
partial Merge #14454: Add SegWit support to importmulti (#4440)
* partial Merge #14454: Add SegWit support to importmulti

c11875c5908a17314bb38caa911507dc6401ec49 Add segwit address tests for importmulti (MeshCollider)
201451b1ca3c6db3b13f9491a81db5b120b864bb Make getaddressinfo return solvability (MeshCollider)
1753d217ead7e2de35b3df6cd6573a1c9a068f84 Add release notes for importmulti segwit change (MeshCollider)
353c064596fc2e2c149987ac3b3c11b4c90c4d5f Fix typo in test_framework/blocktools (MeshCollider)
f6ed748cf045d7f0d9a49e15cc0c0001610b9231 Add SegWit support to importmulti with some ProcessImport cleanup (MeshCollider)

Pull request description:

  Add support for segwit to importmulti, supports P2WSH, P2WPKH, P2SH-P2WPKH, P2SH-P2WSH. Adds a new `witnessscript` parameter which must be used for the witness scripts in the relevant situations.

  Also includes some tests for the various import types.

  ~Also makes the change in #14019 redundant, but cherry-picks the test from that PR to test the behavior (@achow101).~

  Fixes #12253, also addresses the second point in #12703, and fixes #14407

Tree-SHA512: 775a755c524d1c387a99acddd772f677d2073876b72403dcfb92c59f9b405ae13ceedcf4dbd2ee1d7a8db91c494f67ca137161032ee3a2071282eeb411be090a

# Conflicts:
#	src/wallet/rpcdump.cpp
#	test/functional/test_framework/blocktools.py
#	test/functional/wallet_importmulti.py

* make linter happy

Signed-off-by: pasta <pasta@dashboost.org>

* Fixes: trivial + linter + add missing consistency check + more/redo 14679

Co-authored-by: Wladimir J. van der Laan <laanwj@gmail.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-09-28 22:48:33 +03:00
Samuel Dobson
d54e7c8197 Merge #17553: wallet: Remove out of date comments for CalculateMaximumSignedTxSize
6a2e6b0600077e5903400dc74bc8b0c26592fde6 Remove out of date comments for CalculateMaximumSignedTxSize (Gregory Sanders)

Pull request description:

  These paths can be hit for probably a number of reasons, and ISMINE spendability is not a requirement to call it.

  For example: During watch-only transaction creation, previous transaction in wallet, pubkey imported, but not the witnessscript associated with the prevout.

  In this case I think no/minimal comment is better than specific and soon to be out of date.

ACKs for top commit:
  achow101:
    ACK 6a2e6b0600077e5903400dc74bc8b0c26592fde6
  darosior:
    ACK 6a2e6b0600077e5903400dc74bc8b0c26592fde6

Tree-SHA512: ad4c26fd2409eb5aed19d67c19cb5479d226bd11e9298630309c4344f6562ace2e10c2850ebe22770331d71e91320a606e79619b9fe52dd478ce1f589a740122
2021-09-28 14:46:44 -04:00
MarcoFalke
3047385d47 Merge #15853: wallet: Remove unused import checkpoints.h
fadf7d1390 wallet: Remove unused import checkpoints.h (MarcoFalke)

Pull request description:

  Yet another silent merge conflict. This one was caused by unsorted includes.

ACKs for commit fadf7d:

Tree-SHA512: b5bcbddfa0c443bd179cd239cb1d9942d904303d59ca72f97bcac8711f8d9cbdf96821c7fd33ed6c0f4ec9ec1ad72af176ffae11c5f19db861a0486022e321a5
2021-09-24 12:09:05 -03:00
PastaPastaPasta
97709a2bfa
Merge #14813: qa: Add wallet_encryption error tests (#4438) 2021-09-24 12:56:10 +03:00
UdjinM6
b78ceed6ca
Merge pull request #4426 from Munkybooty/backports-0.18-pr17
Backports 0.18 pr17
2021-09-24 12:02:53 +03:00
UdjinM6
b6640644eb
Merge pull request #4442 from UdjinM6/pr4319_new
Backport #14023, #13825, #14411 (and revert #14441)
2021-09-24 12:01:27 +03:00
UdjinM6
8491e925d9
Merge pull request #4432 from PastaPastaPasta/backport-trivial-pr18
Backport trivial pr18
2021-09-19 00:33:21 +03:00
Samuel Dobson
aaf2a17767
Merge #18262: bnb: exit selection when best_waste is 0
9b5950db8683f9b4be03f79ee0aae8a780b01a4b bnb: exit selection when best_waste is 0 (Andrew Chow)

Pull request description:

  If we find a solution which has no waste, just use that. This solution
  is what we would consider to be optimal, and other solutions we find
  would have to also have 0 waste, so they are equivalent to the first
  one with 0 waste. Thus we can optimize by just choosing the first one
  with 0 waste.

  Closes #18257

ACKs for top commit:
  instagibbs:
    utACK 9b5950db86
  meshcollider:
    utACK 9b5950db8683f9b4be03f79ee0aae8a780b01a4b

Tree-SHA512: 59565ff4a3d8281e7bc0ce87065a34c8d8bf8a95f628ba96b4fe89f1274979165aea6312e5f1f21b418c8c484aafc5166d22d9eff9d127a8192498625d58c557
2021-09-18 17:15:47 -04:00
MarcoFalke
44aef1f053
Merge #18195: test: Add cost_of_change parameter assertions to bnb_search_test
c72a11a1a030036eb1fe4472086a9733731961ce test: Add cost_of_change parameter assertions to bnb_search_test (Yancy Ribbens)

Pull request description:

  If the `cost_of_change` variable is removed from the method body `SelectCoinsBnB`, there are currently no failing unit tests.  This PR adds assertions about the behavior of the `cost_of_change`:  If the cost of creating a change output is greater than what's leftover, then consume the output and create no change, otherwise, don't consume the output (no match found).

ACKs for top commit:
  achow101:
    ACK c72a11a1a030036eb1fe4472086a9733731961ce

Tree-SHA512: 613aa411df5e2911446e0e8bf3309336faaadf2d3c56e7d125b76454e7c6f9e4f5e8f0910dc6222282628e38cd8a4a7c56bb3d36b564a17f396b9b503ecc64c8
2021-09-18 17:15:46 -04:00
MarcoFalke
7dc5565c7d
Merge #14411: [wallet] Restore ability to list incoming transactions by label
da427dbd48 Rename ListTransactions filter variable (Russell Yanofsky)
65b740f92b [wallet] Restore ability to list incoming transactions by label (Russell Yanofsky)

Pull request description:

  This change partially reverts #13075 and #14023.

  Fixes #14382

Tree-SHA512: 8c4e56104b3a45784cdc06bae8e5facdfff04fe3545b63a35e0ec2e440a41b79d84833ca4c4e728d8af7ebb8a519303a9eda7bee4bbfb92bd50c58587a33eb30
2021-09-17 02:17:00 +03:00
John Newbery
da164724d2
Merge bitcoin#13825: [wallet] Kill accounts
This commit does the following changes:

- [wallet] Remove 'account' argument from GetLegacyBalance()
  - GetLegacyBalance() is never called with an account argument.
    Remove the argument and helper functions.
- [wallet] Remove CWallet::ListAccountCreditDebit()
  - Function no longer used.
- [wallet] Remove AccountMove()
  - Function no longer used.
- [wallet] Remove AddAccountingEntry()
  - Function no longer used.
- [wallet] Remove GetAccountCreditDebit()
  - Function no longer used.
- [wallet] Don't rewrite accounting entries when reordering wallet transactions.
 - Accounting entries are deprecated. Don't rewrite them to the wallet
   database when re-ordering transactions.
- [wallet] Remove WriteAccountingEntry()
  - Function no longer used.
- [wallet] Don't read acentry key-values from wallet on load.
- [wallet] Remove ListAccountCreditDebit()
  - Function no longer used.
- [wallet] Remove CAccountingEntry class
  - No longer used
- [wallet] Remove GetLabelDestination
  - Function no longer used.
- [wallet] Delete unused account functions
  - ReadAccount
  - WriteAccount
  - EraseAccount
  - DeleteLabel
- [wallet] Remove fromAccount argument from CommitTransaction()
- [wallet] Remove strFromAccount.
  - No longer used.
- [wallet] Remove strSentAccount from GetAmounts().
  - No longer used.
- [wallet] Update zapwallettxes comment to remove accounts.
- [wallet] Remove CAccount
  - No longer used
- [docs] fix typo in release notes for PR 14023
2021-09-17 02:17:00 +03:00
Wladimir J. van der Laan
b00e1b6331
Merge #14023: Remove accounts rpcs
bb08423d5ca866d4a139a3b57ff110d818d08b32 [doc] Add release notes for 'account' API removal (John Newbery)
1f4b865e57b4567270b1586bb1f348ab9106485d [wallet] Re-sort wallet RPC commands (John Newbery)
f0dc850bf698f7377797d7d68365d4fc79b0221c [wallet] Remove wallet account RPCs (John Newbery)
c410f415758913c933ad6c71cf50227cc85aa385 [tests] Remove wallet accounts test (John Newbery)

Pull request description:

  This is the first part of #13825. It simply removes the RPC methods and tests.

  #13825 touches lots of files and will require frequent rebasing.

  Breaking it down for easier reviewing and fewer rebases.

Tree-SHA512: d29af8e7a035e4484e6b9bb56cb86592be0ec112d8ba4ce19c15d15366ff3086e89e99fca26b90c9d66f6d3e06894486d0f29948df0bb7dcb1e2c49c6887a85a
2021-09-17 02:17:00 +03:00
UdjinM6
5afaeb24cb
Revert "Merge #14441: [wallet] Backport(0.17): Restore ability to list incoming transactions by label"
This reverts commit 96d306324f.
2021-09-17 02:16:55 +03:00
PastaPastaPasta
78e04b92f2
Merge pull request #4420 from vijaydasmp/backport_v18_vijay_batch3_1
Merge #15334, #13076, #15266, #13128
2021-09-16 18:29:41 -04:00
Wladimir J. van der Laan
99f1bea7f7 Merge #12559: Avoid locking cs_main in some wallet RPC
00f58f8c48db05dce9dceed73a0028482e037f0f rpc: Avoid locking cs_main in some wallet RPC (João Barbosa)

Pull request description:

  Avoid locking `cs_main` in the folllowing wallet RPC:
   - `decoderawtransaction`
   - `getnewaddress`
   - `getrawchangeaddress`
   - `setlabel`

Tree-SHA512: 54089766b2a969a17479af6c60e8ce151fac1f8cec268d43c61e679d5d17e76d17e414240c9ca2bfd280165f3a04e24a51310eb283591cd601a7eebc8b2423ea
2021-09-15 18:53:07 -04:00
Wladimir J. van der Laan
9ca2c0a8a6
Merge #17410: Rename db log category to walletdb (like coindb)
e2c03c1156a1a8cb2c04c180f2ddbd3535126a46 doc: Add relase note for db→walletdb rename (Wladimir J. van der Laan)
4c1d263d93988ceed53e8f6b5decaf034b68137e scripted-diff: Change `BCLog::DB` to `BCLog::WALLETDB` (Wladimir J. van der Laan)
6b42b3ba9087225fddb91dd764c42c28d0c42d0f Rename `db` log category to `walletdb` (like `coindb`) (Wladimir J. van der Laan)

Pull request description:

  Rename the `db` log category to `walletdb` (in the style of, and to distinguish from `coindb`). Deprecate (but still accept) '-debug=db'.

  Second commit is a scripted commit that changes the enum item name.

ACKs for top commit:
  hebasto:
    ACK e2c03c1156a1a8cb2c04c180f2ddbd3535126a46, tested on Linux Mint 19.2:

Tree-SHA512: a044de6f9a70e735cbb1caa4ed6bf75bc2269b2d5bc3241a25b6a6d69c1fc1d83456e252b431388ae61f4821e4fc06ecc1b634816ceadbe9a3c0e494bee6c11e
2021-09-15 13:54:41 -04:00
MeshCollider
a894cb607c
Merge #13076: Fix ScanForWalletTransactions to return an enum indicating scan result: success / failure / user_abort
bd3b0361d Add stop_block out arg to ScanForWalletTransactions (Ben Woosley)
3002d6cf3 Return a status enum from ScanForWalletTransactions (Ben Woosley)
bb24d6865 Make CWallet::ScanForWalletTransactions args and return value const (Ben Woosley)

Pull request description:

  Return the failed block as an out arg.

  Fixes #11450.

  /cc #12275

Tree-SHA512: 6a523e5425ebfe24e664a942ae21c797ccc1281c25b1bf8d02ad95c19dae343fd8051985ef11853474de7628fd6bed5f15190fbc087c3466ce6fdecab37d72a9
2021-09-15 00:04:44 +05:30
fanquake
44c7bb618e Merge #16716: wallet: Use wallet name instead of pointer on unload/release
d9d8984270dbb004ec94f8dbb289be2bc9e4dbc3 wallet: Use wallet name instead of pointer on unload/release (João Barbosa)

Pull request description:

  Fixes #16668. Wallet name is unique so it can be used instead of pointer.

ACKs for top commit:
  meshcollider:
    utACK d9d8984270dbb004ec94f8dbb289be2bc9e4dbc3
  instagibbs:
    utACK d9d8984270
  ryanofsky:
    utACK d9d8984270dbb004ec94f8dbb289be2bc9e4dbc3. Alternately I think it might be possible to use an intptr_t set instead of a string set to get around the undefined behavior described in the issue.

Tree-SHA512: eccd4d260cd4c02b52c30deeb32dbfd190a1151a5340eb3aa4ece0dc6ae3b3ed746ce5617336461f6f27c437c435629cd07d20beb1c5450f23b75edde6728598
2021-09-14 14:11:59 -04:00
PastaPastaPasta
dfea329f69
Merge pull request #4396 from Munkybooty/backports-0.18-pr16
Backports 0.18 pr16
2021-09-14 12:05:37 -04:00
MarcoFalke
ae4bea6052 Merge #15357: rpc: Don't ignore -maxtxfee when wallet is disabled
dfbf117bbb Move maxTxFee initialization to init.cpp (Jordan Baczuk)

Pull request description:

  Resolves #15355

Tree-SHA512: 6eafacc6a3b0589fb645b0080fd3c01598566df1bd7ee7929284853866a23493960fbd4d6f9c3417e192f8a21706d9f593197734f6189e046e4747991305a0b8
2021-09-13 10:31:44 -04:00
MarcoFalke
eab6110ab6 Merge #15365: wallet: Add lock annotation for mapAddressBook
faa46475d7 wallet: Add lock annotation for mapAddressBook (MarcoFalke)

Pull request description:

  This adds lock annotations for `mapAddressBook` and also moves one lock from inside `GetDestValues` to the caller to be in line with the other methods (`eraseDestData`, `addDestData`, ...)

Tree-SHA512: cef9397523e2f5717d4a9a6b2da1fe07042484a51b3c067ae64425768637f334350a2c3db4ab7e00af99b2a587f6b656b68ee1195f6a3db6d47298d0b2b6174a
2021-09-13 10:31:44 -04:00
Wladimir J. van der Laan
1efb500783
Merge #15334: wallet: Log absolute paths for the wallets
a4b92e467dd182621497deda1e80a9737629c75f Log full paths for wallets (Hennadii Stepanov)

Pull request description:

  Fix #15333

  `debug.log` with this PR:
  ```
  ...
  2019-02-03T19:02:35Z Using wallet directory /home/hebasto/.bitcoin/testnet3/wallets
  2019-02-03T19:02:35Z init message: Verifying wallet(s)...
  2019-02-03T19:02:35Z Using BerkeleyDB version Berkeley DB 4.8.30: (April  9, 2010)
  2019-02-03T19:02:35Z Using wallet test_alpha/wallet.dat
  2019-02-03T19:02:35Z BerkeleyEnvironment::Open: LogDir=/home/hebasto/.bitcoin/testnet3/wallets/test_alpha/database ErrorFile=/home/hebasto/.bitcoin/testnet3/wallets/test_alpha/db.log
  2019-02-03T19:02:35Z Using BerkeleyDB version Berkeley DB 4.8.30: (April  9, 2010)
  2019-02-03T19:02:35Z Using wallet alpha_wallet/wallet.dat
  2019-02-03T19:02:35Z BerkeleyEnvironment::Open: LogDir=/home/hebasto/.bitcoin/testnet3/wallets/alpha_wallet/database ErrorFile=/home/hebasto/.bitcoin/testnet3/wallets/alpha_wallet/db.log
  2019-02-03T19:02:35Z Using BerkeleyDB version Berkeley DB 4.8.30: (April  9, 2010)
  2019-02-03T19:02:35Z Using wallet wallet.dat
  2019-02-03T19:02:35Z BerkeleyEnvironment::Open: LogDir=/home/hebasto/.bitcoin/testnet3/wallets/database ErrorFile=/home/hebasto/.bitcoin/testnet3/wallets/db.log
  2019-02-03T19:02:35Z Using BerkeleyDB version Berkeley DB 4.8.30: (April  9, 2010)
  2019-02-03T19:02:35Z Using wallet none/wallet.dat
  2019-02-03T19:02:35Z BerkeleyEnvironment::Open: LogDir=/home/hebasto/.bitcoin/testnet3/wallets/none/database ErrorFile=/home/hebasto/.bitcoin/testnet3/wallets/none/db.log
  2019-02-03T19:02:35Z init message: Loading banlist...
  ...
  ```

Tree-SHA512: 8dd4408d3f6b04f396dd0ae0d248fedc3a0f6d36788556ae1662443f06f2ecce1c2be9456bf8d1b3d25b29c2a0cfb03cb805bde0a40387e68988ab932e17e118
2021-09-13 10:59:15 +05:30
MarcoFalke
f1520278ed
Merge #15917: wallet: Avoid logging no_such_file_or_directory error
70c1cf8c1c wallet: Avoid logging no_such_file_or_directory error (João Barbosa)

Pull request description:

  Avoid logging `IsBerkeleyBtree: No such file or directory ...`. The result of `IsBerkeleyBtree` is the same since `fs::file_size()` returns 0 for non existent files.

  Fix #15912.

ACKs for commit 70c1cf:
  practicalswift:
    utACK 70c1cf8c1c07091544d060191715027282e87b57
  jonasschnelli:
    utACK 70c1cf8c1c07091544d060191715027282e87b57
  Empact:
    utACK 70c1cf8c1c

Tree-SHA512: 964a64fff9a17b805a1570884cdb2beb82283498f790b0464e011791803ae7f37dba213320c76a920dd92b2b972a7640e6277ecf470400734149dc8f9f9f1d6d
2021-09-12 14:15:09 -04:00
UdjinM6
c829f1a889
Merge pull request #4412 from PastaPastaPasta/backport-trivial-pr15
Backport trivial pr15
2021-09-11 23:52:10 +03:00
Odysseas Gabrielides
12218473f8
Merge #14679: importmulti: Don't add internal addresses to address book (#4402)
* importmulti: Don't add internal addresses to address book

* Update test/functional/wallet_importmulti.py

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

* Update test/functional/wallet_importmulti.py

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

* Updated rpcdump

* Update test/functional/wallet_importmulti.py

* fix whitespace in rpcdump.cpp to be inline with upstream

Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-09-11 15:56:58 -04:00
MeshCollider
90383e33a9
Merge #15625: refactor: Remove unused function
bb6195e34 refactor: Remove unused function (practicalswift)

Pull request description:

  Last use removed in cad5dd2368109ec398a3b79c8b9e94dfd23f0845.

Tree-SHA512: f65bf8f77b9aadbfba39bd80076a4d773eddf685a8a90ef2db549552a3d0ccd426ce3920b2f71954703f64d840fa88349957996d1f64a9c4d3f27a99b4da70e7
2021-09-10 20:54:54 -04:00
Wladimir J. van der Laan
00db885d15
Merge #15583: wallet: Log and ignore errors in ListWalletDir and IsBerkeleyBtree
15c69b158da570f4e1430280c610e94ffdee0e51 wallet: Log and ignore errors in ListWalletDir and IsBerkeleyBtree (João Barbosa)

Pull request description:

  Use the `noexcept` members of `boost::filesystem::recursive_directory_iterator` in order to ignore `boost::filesystem::directory_iterator::construct: Permission denied` errors. The errors are logged though.

  Steps to reproduce the issue:

  ```sh
  # 1. create directory for -walletdir without read access:
  mkdir /tmp/foo && chmod a-r /tmp/foo

  # 2. run bitcoin-qt and should print an error, but continues running:
  /Volumes/Bitcoin-Core/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt -regtest -walletdir=/tmp/foo
  /private/tmp/foo: Permission denied

  # 4. go to File -> Open Wallet and should segfault:
  EXCEPTION: N5boost10filesystem16filesystem_errorE
  boost::filesystem::directory_iterator::construct: Permission denied: "/private/tmp/foo"
  bitcoin in Runaway exception
  ```

Tree-SHA512: 37e8bf5a1e0defc331030fd511bf9cac2765d01dfbf23e7233f37506e85b8ad07edcde9ba6dae7a2c95700c78d28c7dd248153607381852da96273cb159c4934
2021-09-10 20:54:53 -04:00
Wladimir J. van der Laan
1abaa0a0a1
Merge #15468: wallet: Use fsbridge::ifstream to fix Windows path issue
6ad79cbd562d04ebbcb61c774fb3389e70fedb7c wallet: Use fsbridge::ifstream to fix Windows path issue (Chun Kuan Lee)

Pull request description:

  Fix #15460

Tree-SHA512: 1dab04184608543d49c86cbcfb679d63d35cb7bf3bde2e2d9ddf25ec8977de42b7131db5e81a305f3452858079dbcf68f6ad4624c89575d3d7e5b550687fc6ad
2021-09-10 20:54:52 -04:00
PastaPastaPasta
fe03773065
Merge pull request #4399 from vijaydasmp/backport_v18_vijay_batch2
Backport v18 vijay batch2
2021-09-10 11:39:14 -04:00
Wladimir J. van der Laan
158b03edfa
Merge #14760: Log env path in BerkeleyEnvironment::Flush
467461030 Log env path in BerkeleyEnvironment::Flush (João Barbosa)

Pull request description:

  With `bitcoind -regtest -wallet=w1 -wallet=w2 -debug`, before:

  ```
  BerkeleyEnvironment::Flush: Flush(true)
  BerkeleyEnvironment::Flush: Flushing wallet.dat (refcount = 0)...
  BerkeleyEnvironment::Flush: wallet.dat checkpoint
  BerkeleyEnvironment::Flush: wallet.dat detach
  BerkeleyEnvironment::Flush: wallet.dat closed
  BerkeleyEnvironment::Flush: Flush(true) took              23ms
  BerkeleyEnvironment::Flush: Flush(true)
  BerkeleyEnvironment::Flush: Flushing wallet.dat (refcount = 0)...
  BerkeleyEnvironment::Flush: wallet.dat checkpoint
  BerkeleyEnvironment::Flush: wallet.dat detach
  BerkeleyEnvironment::Flush: wallet.dat closed
  BerkeleyEnvironment::Flush: Flush(true) took              19ms
  ```

  After:
  ```
  BerkeleyEnvironment::Flush: [/Users/joao/Library/Application Support/Bitcoin/regtest/wallets/w1] Flush(true)
  BerkeleyEnvironment::Flush: Flushing wallet.dat (refcount = 0)...
  BerkeleyEnvironment::Flush: wallet.dat checkpoint
  BerkeleyEnvironment::Flush: wallet.dat detach
  BerkeleyEnvironment::Flush: wallet.dat closed
  BerkeleyEnvironment::Flush: Flush(true) took              23ms
  BerkeleyEnvironment::Flush: [/Users/joao/Library/Application Support/Bitcoin/regtest/wallets/w2] Flush(true)
  BerkeleyEnvironment::Flush: Flushing wallet.dat (refcount = 0)...
  BerkeleyEnvironment::Flush: wallet.dat checkpoint
  BerkeleyEnvironment::Flush: wallet.dat detach
  BerkeleyEnvironment::Flush: wallet.dat closed
  BerkeleyEnvironment::Flush: Flush(true) took              19ms
  ```

Tree-SHA512: f90b413cca5d2527324a264ce371dc8baba69f5b541f7d7f6238a8dd79398cbd3c67c0d7a8a0b69aec6c44d77ba26a079c2241427e3669ed22c7da0e4d60039e
2021-09-10 07:37:12 +05:30
Wladimir J. van der Laan
39308f017a
Merge #14941: rpc: Make unloadwallet wait for complete wallet unload
645e905c327411555073fa7964b36f652998059f doc: Add release notes for unloadwallet change to synchronous call (João Barbosa)
c37851de5752f107c16e19317f28038b6b7ca2dc rpc: Make unloadwallet wait for complete wallet unload (João Barbosa)

Pull request description:

  Currently the `unloadwallet` RPC is asynchronous, it only signals the intent to unload the wallet and then returns the response to the client. The actual unload can happen later and the client has no way to be notified of that.

  This PR makes the `unloadwallet` RPC synchronous, meaning that it blocks until the wallet is fully unloaded.

  Replaces #14919, fixes #14917.

Tree-SHA512: ad88b980e2f3652809a58f904afbfe020299f3aa6a517f495ba943b8d54d4520f6e70074d6749be8f5967065c0f476e0faedcde64c8b4899e5f99c70f0fd6534
2021-09-08 14:17:35 -04:00
MarcoFalke
5a627762c1
Merge #15245: remove deprecated mentions of signrawtransaction from fundraw help
851380ce17 remove deprecated mentions of signrawtransaction from fundraw help (Gregory Sanders)

Pull request description:

  RPC call has been removed as of 0.17.99.

Tree-SHA512: a6a12a0e4572acd9b532c1719be85ed6f29d1c1a28f9ce691398528b8dde4fb4a3222b8f68632fcb1a8eddfe2d31e96d5efd5bc51c041af8e7cb99b61ca3a167
2021-09-06 18:01:57 +05:30
Vijay Manikpuri
c52da55520
Merge #18502: doc: Update docs for getbalance (default minconf should be 0) (#4372)
* Merge #18502: doc: Update docs for getbalance (default minconf should be 0)

* Backporting Merge #18502: doc: Update docs for getbalance (default minconf should be 0)

* Update src/wallet/rpcwallet.cpp

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-08-31 12:53:15 -04:00
UdjinM6
f38aa44bfd
Merge pull request #4375 from PastaPastaPasta/pr_4330
backport 0.18 PR #14522 #14672 #14812 #14494 #14690 #14700 #14705 #14478 #14247
2021-08-29 23:50:29 +03:00
Wladimir J. van der Laan
baa76aa331 Merge #15225: GUI: Change the receive button to respond to keypool state changing
2bc4c3eaf96f5f8490fc79280422916c5d14cde3 Notify the GUI that the keypool has changed to set the receive button (Andrew Chow)
14bcdbe09cffaef9bcc51dd9de1645db3f0a93db Check for more than private keys disabled to show receive button (Andrew Chow)

Pull request description:

  Currently the Receive button in the GUI is displayed enabled or disabled by the initial state of the wallet when the wallet is first loaded. The button is only enabled or disabled depending on whether the disable private keys flag is set when the wallet is loaded. However, future changes to the wallet means that this initial state and check may no longer be accurate. #14938 introduces empty wallets which do not have private keys. An empty wallet that is loaded should have the Receive button disabled, and then it should become enabled once `sethdseed` is used so that a keypool can be generated and new keys generated. Likewise, with #14075, a wallet can be loaded with no keypool initially, so the button should be disabled. Later, public keys can be imported into the keypool, at which time the button should become enabled. When the keypool runs out again (no new keys are generated as the keypool only consists of imports), the button should become disabled.

  This PR makes it so that the button becomes enabled and disabled as the keypool state changes. The check for whether to enable or disable the receive button has changed to checking whether it is possible to get new keys. It now checks for whether the wallet has an HD seed and, if not, whether the private keys are disabled. When an action happens which would make it possible for a new address to be retrieved or make it possible for a no more addresses to be retrieved, a signal is emitted which has the GUI recheck the conditions for the Receive button. These actions are setting a new HD seed, topping up the keypool, retrieving a key from the keypool, and returning a key to the keypool.

Tree-SHA512: eff15a5337f4c64ecd7169414fb47053c04f6a0f0130341b6dd9799ac4d79f451e25284701c668971fca33f0909d5352a474a2c12349375bedfdb59b63077d50
2021-08-24 19:14:50 -04:00
MarcoFalke
9b233fbc4c Merge #15279: wallet: Clarify rescanblockchain doc
fa5e6ef55c wallet: Fixup rescanblockchain result doc (MarcoFalke)

Pull request description:

  This was probably accidentally added to the wrong line when addressing the feedback here: https://github.com/bitcoin/bitcoin/pull/7061#discussion_r142199778

  I already added the default values in #14877, but it could be clarified more that this really has no specific block height as default value, since the tip can change during a rescan.

Tree-SHA512: 48a3c5143e2b7129ee8f396d2e77550cb393fbe45f5936aeebeb7a201d61560336a3ae47b26bb757a4dbbe217e06abfd67a5a673aef266b6c4d7a80d049a2b49
2021-08-24 19:14:50 -04:00
Wladimir J. van der Laan
5e9fd964b7 Merge #15254: Trivial: fixup a few doxygen comments
70e7cee96028889ab709fa3c479225e584fcb77f Trivial: Doxygenize existing CBufferedFile and VectorReader comments (Ben Woosley)
9431e1b91598fc255234ede10c22208ad18685cd Trivial: fixup a few doxygen comments (Ben Woosley)

Pull request description:

  These were not declared properly, so their results are not properly
  processed. E.g.:
  https://dev.visucore.com/bitcoin/doxygen/rpcdump_8cpp.html#a994c8748aaa60fbb78009ff8a0638dea
  https://dev.visucore.com/bitcoin/doxygen/coins_8cpp.html#aa03af24ef3570144b045f4fca7a0d603
  https://dev.visucore.com/bitcoin/doxygen/wallet_2wallet_8cpp.html#a5c2a7725ff8796f03471f844ecded3d9

  > A third alternative is to use a block of at least two C++ comment lines, where each line starts with an additional slash or an exclamation mark.

  http://www.doxygen.nl/manual/docblocks.html

Tree-SHA512: c13fd48ac78f25e51b1281385747e8be4bd6e27e0a0f8704608aa5c66c16715c639f1cf27018b1bf05fc2eaed6c7b9be05a68365ffe1d88dd3f400d453b7bead
2021-08-24 19:14:50 -04:00
MarcoFalke
1809b8f038
Merge #14478: Show error to user when corrupt wallet unlock fails
b4f6e58ca5 Better error message for user when corrupt wallet unlock fails (MeshCollider)

Pull request description:

  Mentioned here: https://github.com/bitcoin/bitcoin/issues/14461#issuecomment-429183503

  Current behavior is to assert(false) and crash, only info is printed in the log. This shows the message to the user before abort() instead.

Tree-SHA512: 526f9ed9262257fca55caf7153ab913ed958b13b079d2f01db797485614d8c375815a1554276e8cf73d3838104b2691a9cf85c8d097973127ae8de9e111446bf
2021-08-22 21:35:55 -05:00
UdjinM6
3bc04d668a
Merge pull request #4338 from pravblockc/backports-v0.18-pr11
Backports v0.18: PR's #15176, 15235, 15272 and 15247
2021-08-17 22:55:21 +03:00
Wladimir J. van der Laan
ac01dbee63 Merge #15235: Do not import private keys to wallets with private keys disabled
e6c58d3b014ab8ef5cca4be68764af4b79685fcb Do not import private keys to wallets with private keys disabled (Andrew Chow)
b5c5021b644731d14a6ef04961320a99466f035a Refactor importwallet to extract data from the file and then import (Andrew Chow)
1f77f6754ce724493b0cb084ae0b35107d58605f tests: unify RPC argument to cli argument conversion and handle dicts and lists (Andrew Chow)

Pull request description:

  Fixes a bug where private keys could be imported to wallets with private keys disabled. Now every RPC which can import private keys checks for whether the wallet has private keys are disabled and errors if it is. Also added an belt-and-suspenders check to `AddKeyPubkeyWithDB` to have it assert that the wallet has private keys enabled.

Tree-SHA512: 5cd04febce9aa2bd9bfd02f312c6ff8705e37278cae59efd3895f6d6e2f1b477aefd297e2dd0860791bdd3d4f3cad8eb1a404f8f3d4e2035b91314ad2c1028ae

dash changes
2021-08-16 23:56:13 -03:00
5tefan
4b2580102e Merge #14561: Remove fs::relative call and fix listwalletdir tests
ed2e18398b3ab657e98e3e1fe135cbf8dd94fda3 Remove fs::relative call and fix listwalletdir tests (João Barbosa)

Pull request description:

  The implementation of `fs::relative` resolves symlinks which is not
intended in ListWalletDir. The replacement does what is required, and
`listwalletdir` RPC tests are fixed accordingly.

  Also, `fs::recursive_directory_iterator` iteration is fixed to build
with boost 1.47.

  Based on #14559

Tree-SHA512: 1da516226073f195285d10d9d9648c90cce0158c5d1eb9c31217bb4abb575cd37f07c00787c5a850554d6120bbc5a3cbc5cb47d4488b32ac6bcb52bc1882d600
2021-08-14 11:56:56 -06:00
5tefan
f9498d0051 Merge #14291: wallet: Add ListWalletDir utility function
d56a0689354fb814510c6c393f3e07ac9362dc1f docs: Add release notes for listwalletdir RPC (João Barbosa)
0cb3cad166bbeb75e9cc1512286453f8e7d4f717 qa: Add tests for listwalletdir RPC (João Barbosa)
cc3377360c417780f5cbd7bd69b438817a9d60be rpc: Add listwalletdir RPC (João Barbosa)
d1b03b8e5f04a2cc9ebb985bd9a1aebd2068f757 interfaces: Add getWalletDir and listWalletDir to Node (João Barbosa)
fc4db35bfd78d85d6b52d5da3d89696160658450 wallet: Add ListWalletDir utility (João Barbosa)

Pull request description:

  `ListWalletDir` returns all available wallets in the current wallet
directory.

  Based on MeshCollider work in pull #11485.

Tree-SHA512: 5843e3dbd1e0449f55bb8ea7c241a536078ff6ffcaad88ce5fcf8963971d48c78600fbc4f44919523b8a92329d5d8a5f567a3e0ccb0270fdd27366e19603a716
2021-08-13 22:06:13 -06:00
MarcoFalke
1a1378b96f Merge #14530: Use RPCHelpMan to generate RPC doc strings
fa483e13b3 rpc: Add RPCHelpMan for machine-generated help (MarcoFalke)
fa0d36f712 rpc: Include rpc/util.h where needed for RPCHelpMan (MarcoFalke)

Pull request description:

  This introduces a manager for the RPC help generation and demonstrates its use of it in some RPCs.

  It is the first non-exhaustive step toward #14378 and I will create pull requests for the next steps after this one is merged.

Tree-SHA512: 86f68322443ff01cd964aaf0ebe186be63fbebe4c47676cf7a622cc2b5305fd176bd57badfd1bbf788a036812253eb0dead74ecc3b30664c3e0d9392b2248054
2021-08-12 14:42:21 -03:00
PastaPastaPasta
39e34e2b52
Merge pull request #4334 from linuxsh2/bp-19
Backports v0.19 (16767, 16646, 16470, 16329, 16234, 16059, 15968, 15866, 15755, 15617, 15466, 15491)
2021-08-11 16:57:34 -05:00
PastaPastaPasta
1f9cb0a3d1
Merge pull request #4327 from pravblockc/backports-v0.18-pr8
Backports v0.18-PR's 15109, 15078, 14297 and 14298
2021-08-11 13:18:44 -05:00
MeshCollider
a0bee299b9 Merge #15491: wallet: Improve log output for errors during load
faf369880 wallet: Improve log output for errors during load (Glenn Willen)

Pull request description:

  When loading the wallet, display the entire path in error messages, instead of
  the name (which, for the default wallet, is the empty string.)

  When an exception occurs during wallet loading, display e.what() if possible,
  instead of nothing.

Tree-SHA512: 435247628db669579bb694ba4b53ba174fe42c0329fc72f09fc274bb28463ee69f53412abb2a3b45bb8f59f7eb928c0167e397b8d0a514135142192a87294614
2021-08-11 13:58:48 -04:00
PastaPastaPasta
90e7119a8b
Merge pull request #4312 from kittywhiskers/fuzz
merge bitcoin#15043, #15295, #15399, #17452, #16338, #15504, #17076, #17069, #17018: fuzzing
2021-08-11 11:28:26 -05:00
PastaPastaPasta
a9bfde558a
Merge pull request #4313 from Munkybooty/backports-0.18-pr12
Backports 0.18 pr12
2021-08-11 11:11:35 -05:00
Kittywhiskers Van Gogh
76e652aac7 bitcoin#14168: Remove ENABLE_WALLET from libbitcoin_server.a 2021-08-11 09:48:41 +05:30
Wladimir J. van der Laan
95d588e9b4 Merge #15109: refactor: Use C++11 default member initializers
fa2510d5c1cdf9c2cd5cc9887302ced4378c7202 Use C++11 default member initializers (MarcoFalke)

Pull request description:

  Changes:
  * Remove unused constructors that leave some members uninitialized
  * Remove manual initialization in each constructor and prefer C++11 default member initializers

  This is not a stylistic change, but a change that avoids bugs such as:

  *  fix uninitialized read when stringifying an addrLocal #14728
  *  qt: Initialize members in WalletModel #12426
  *  net: correctly initialize nMinPingUsecTime #6636
  * ...

Tree-SHA512: 0f896f3b9fcc464d5fc7525f7c86343ef9ce9fb13425fbc68e9a9728fd8710c2b4e2fd039ee08279ea41ff20fd92b7185cf5cca95a0bcb6a5340a1e6f03cae6b
2021-08-10 22:20:30 -03:00
MarcoFalke
0fd490ff28 Merge #14720: rpc: Correctly name arguments
fa0815c300 rpc: Correctly name arguments (Jon Layton)

Pull request description:

  Consistently use the same name to describe arguments in the documentation and add a test that uses the name.

  By splitting it up, the changes are easier to potentially backport and also make review easier when we switch to `RPCHelpMan`.

  The tests should pass with or without the changes in `src`.

  Partly stolen from #14459 (More RPC help description fixes by ch4ot1c)

Tree-SHA512: 1072992b1e93ac41006613523e54a0a8004f529fcb101eb9d74d91474abb0945a5a7539f249905151b904b87448f9efc0cacbd9e052fbe2ea9111e62f3e7249c
2021-08-10 20:24:28 -04:00
UdjinM6
7aebf156e9
Merge pull request #4229 from kittywhiskers/auxports
merge #16117, #18358, #17383, #21052, #14424, #15159, #14689, #14978, partial #16908, #14978, #13932: Auxillary Backports
2021-08-10 22:34:17 +03:00
Kittywhiskers Van Gogh
522934703a merge #14978: Factor out PSBT utilities from RPCs for use in GUI code; related refactoring 2021-08-09 12:38:11 +05:30
PastaPastaPasta
f28cc7aeba
Merge pull request #4303 from linuxsh2/backport/batch-1
Backport v0.18 (15273, 15337, 15297, 15322, 15196, 14884, 14966, 15012, 14319, 14809, 14783, 14820, 14678)
2021-08-06 16:23:59 -05:00
PastaPastaPasta
e626522f1c
Merge pull request #4306 from pravblockc/backports-v0.18-pr5
Backports v0.18 PR:14310, 14305 and 14307 with dash specific changes
2021-08-06 16:16:54 -05:00
Kittywhiskers Van Gogh
cbc4a74250 merge #16117: Replace boost sleep with std sleep 2021-08-05 16:13:47 +05:30
MeshCollider
7195f7cdf7 Merge #15297: wallet: Releases dangling files on BerkeleyEnvironment::Close
d3bf3b930 qa: Test .walletlock file is closed (João Barbosa)
2f8b8f479 wallet: Close wallet env lock file (João Barbosa)
8602a1e6a wallet: Close dbenv error file db.log (João Barbosa)

Pull request description:

  This PR closes `db.log` and removes `.walletlock` files when `BerkeleyEnvironment` is closed.

  Fixes https://github.com/bitcoin/bitcoin/issues/15291#issuecomment-459131886.

Tree-SHA512: 05d8b027feea914e0ba873e75d117857473d1fd7b400e41bd473d638171fa39d5be048990bf685dc0807f7d92418579b763056dc2a6dcf6b96777d5688ddee04
2021-08-03 10:46:20 -04:00
Wladimir J. van der Laan
d253a58d17 Merge #15322: wallet: Add missing cs_db lock
712d35bc563ac7de0b7dfc3a35fc48dc6448fa6a wallet: Add missing cs_db lock (João Barbosa)

Pull request description:

  Without this lock `BerkeleyEnvironment::~BerkeleyEnvironment` and `GetWalletEnv` would race for `g_dbenvs`. This wasn't detected before because thread safety analysis does not check constructors
  and destructors.

  Reference: http://releases.llvm.org/5.0.2/tools/clang/docs/ThreadSafetyAnalysis.html#no-checking-inside-constructors-and-destructors

Tree-SHA512: 350cb2b991ca699a6bca85f87c82c38f0814484c8ccb0d7d83cb3bff9afcf60dd32b2a9554a9e72eb5803bfad8b6970fe7da618b39be5889178b86faa1b74124
2021-08-03 10:46:00 -04:00
PastaPastaPasta
f87d62d677
refactor: misc bls, evo, include refactoring (#4305)
* refactor/bls: misc refactoring and spelling/grammar fixes in bls code

* refactor/evo: misc refactoring and spelling/grammar fixes in evo code

* refactor: some include changes

* refactor: remove redundant `public`

* fix linter

Signed-off-by: pasta <pasta@dashboost.org>

* Sort includes

* Move `class CTxDSIn;`

* Drop unused functions in CBLSWorker

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-07-31 21:29:12 +03:00
MarcoFalke
e68964ca20 Merge #14310: [wallet] Ensure wallet is unlocked before signing
20442f617f [wallet] remove redundand restart node (gustavonalle)
db15805668 [wallet] Ensure wallet is unlocked before signing (gustavonalle)

Pull request description:

  Fixes #14082

Tree-SHA512: 200620a2ced934f958933aba34541565a992e5033cf04c4e2be48b99e7708973c85f8274968962cec943f0c1d76fb2faa5e056469bbf59ce7f768614572322f9
2021-07-29 22:27:57 -03:00
Stefan
6218a94677
Merge #13988: Add checks for settxfee reasonableness (#4301)
317f2cb3f4499afbaa63e3cac80567744f12c95b test: Check RPC settxfee errors
            (João Barbosa)
48618daf262b84c2e2f7322b5ca14375d7d68b64 Add checks for settxfee
            reasonableness (Anthony Towns)

Pull request description:

  When using the `settxfee` RPC, the value is silently ignored if it
is less than either than minrelaytxfee or the wallet's mintxfee. This
adds an error response if that's going to happen, but still allows
"settxfee 0" to deliberately default to the minimum value.
2021-07-29 13:01:15 +03:00
UdjinM6
25f5611d1a
More of 11634: wallet: Add missing cs_wallet/cs_KeyStore locks to wallet 2021-07-29 04:19:14 +03:00
UdjinM6
4ead0a71b7
Merge pull request #4289 from Munkybooty/backports-0.18-pr11
Backports 0.18 pr11
2021-07-28 20:54:28 +03:00
MarcoFalke
1018267b10 Merge #14660: trivial: Don't translate help texts
b6022149ec trivial: Don't translate in help text (ken2812221)

Pull request description:

Tree-SHA512: 05a92b3ac77d00e7bf8c62a0461c9801306e924ac408eae58b0e091eae1c7d54cf46a7a862355fb9aa50b26b505f2298ace6f7b8d294ad38578bdca4d8738343
2021-07-28 12:08:15 -04:00
MarcoFalke
2f59f766d6 Merge #14410: rpcwallet: 'ischange' field for 'getaddressinfo' RPC
14a06525b2 tests: add test for 'getaddressinfo' RPC result 'ischange' field (whythat)
93d1aa9abc rpcwallet: add 'ischange' field to 'getaddressinfo' response (whythat)

Pull request description:

  Implementation of proposal in #14396.

  This introduces `CWallet::IsChange(CScript&)` method and replaces original `CWallet::IsChange(CTxOut&)` method with overloaded version that delegates to the new method with *txout*'s `scriptPubKey`. In this way `TODO` note from the original method can still be addressed in a single place.

Tree-SHA512: ef5dbc82d76b4b9b2fa6a70abc3385a677c55021f79e187ee2f392ee32bc6b406191f4129acae5c17b0206e72b6712e7e0cad574a4bbd966871c2e656c45e041

# Conflicts:
#	doc/release-notes-14282.md
#	src/wallet/rpcwallet.cpp
2021-07-28 12:08:07 -04:00
gabriel-bjg
41190e9899
Fix data races triggered by functional tests. (#4247)
Function CWallet::KeepKey requires locking as it has concurrent access to database and member nKeysLeftSinceAutoBackup.

Avoid data race when reading setInventoryTxToSend size by locking the read. If locking happens after the read, the size may change.

Lock cs_mnauth when reading verifiedProRegTxHash.

Make fRPCRunning atomic as it can be read/written from different threads simultaneously.

Make m_masternode_iqr_connection atomic as it can be read/written from different threads simultaneously.

Use a recursive mutex to synchronize concurrent access to quorumVvec.

Make m_masternode_connection atomic as it can be read/written from different threads simultaneously.

Make m_masternode_probe_connection atomic as it can be read/written from different threads simultaneously.

Use a recursive mutex in order to lock access to activeMasterNode.

Use a recursive mutex to synchronize concurrent access to skShare.

Guarded all mnauth fields of a CNode.

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-07-26 10:52:52 -05:00
MarcoFalke
2284dd01a2 Merge #14373: Consistency fixes for RPC descriptions
b8edb9810a [rpc] Descriptions: Textual consistency fixes (Jon Layton)

Pull request description:

Tree-SHA512: fa22ddac94e95672579cc84309f1c3ea3a2dbf762e45a8ae9c121c4c5188bf8c19ff9458d49dd7ef760c3ae4226487612a2954e9a1a0e8b720116afeb718b46b
2021-07-23 10:12:54 -04:00
UdjinM6
7ec01fd77a
Merge pull request #4278 from PastaPastaPasta/backports-0.18-pr9
Backports 0.18 pr9
2021-07-20 02:26:47 +03:00
Wladimir J. van der Laan
ff5a94748d
Merge #13249: Make objects in range declarations immutable by default. Avoid unnecessary copying of objects in range declarations.
f34c8c466a0e514edac2e8683127b4176ad5d321 Make objects in range declarations immutable by default. Avoid unnecessary copying of objects in range declarations. (practicalswift)

Pull request description:

  Make objects in range declarations immutable by default.

  Rationale:
  * Immutable objects are easier to reason about.
  * Prevents accidental or hard-to-notice change of value.

Tree-SHA512: cad69d35f0cf8a938b848e65dd537c621d96fe3369be306b65ef0cd1baf6cc0a9f28bc230e1e383d810c555a6743d08cb6b2b0bd51856d4611f537a12e5abb8b
2021-07-19 17:11:18 -05:00
Wladimir J. van der Laan
bb5bd83f3d
Merge #14056: Docs: Fix help message typo optiona -> optional
7d0a8ad3103200145ab2e73368c3b8345a66c15d Docs: Fix help message typo optiona -> optional (Ben Woosley)

Pull request description:

Tree-SHA512: 1812b45d912769f11280e3f72d7c8bd273f6d151797d5d32d21cd5a3bbe8725515406494291953be7a9afc02a2cef23bed1930ac3638f8118c0d8346ee8d6332
2021-07-19 17:11:15 -05:00
Wladimir J. van der Laan
86d709ee87
Merge #13962: Remove unused dummy_tx variable from FillPSBT
16bcc1b8237698c96b8ced2fa7eb76388c7ba85e Remove unused dummy_tx variable from FillPSBT (Carl Dong)

Pull request description:

Tree-SHA512: e7652126bca2e87d445d4190aa0b4192d9575bc0c280d063302ca420be51e7a04fcbc24e0e7f5ec1f18938f0a596901e1285e9afc9b33ca3da78177938791163
2021-07-19 17:11:15 -05:00
UdjinM6
95f89eec56
Fix more spelling errors 2021-07-19 12:52:03 -05:00
pasta
c12d3fd2cb
fix misc. spelling errors
Signed-off-by: pasta <pasta@dashboost.org>
2021-07-19 12:51:30 -05:00
MarcoFalke
dab5cfb8ca Merge #11634: wallet: Add missing cs_wallet/cs_KeyStore locks to wallet
69e7ee2dd8 Add GUARDED_BY(cs_wallet) for setExternalKeyPool, mapKeyMetadata, m_script_metadata and setLockedCoins (practicalswift)
37b2538c2d Add GUARDED_BY(cs_wallet) for encrypted_batch, nWalletMaxVersion, m_max_keypool_index and nOrderPosNext (practicalswift)
dee42927c9 wallet: Add Clang thread safety analysis annotations (practicalswift)
1c7e25db0c wallet: Add missing locks (practicalswift)

Pull request description:

  Add missing wallet locks:

  * Calling the function `GetConflicts(...)` requires holding the mutex `cs_wallet`
  * Calling the function `IsSpent(...)` requires holding the mutex `cs_wallet`
  * Accessing the variables `mapKeys` and `mapCryptedKeys` requires holding the mutex `cs_KeyStore`
  * Accessing the variable `nTimeFirstKey` requires holding the mutex `cs_wallet`
  * Accessing the variable `mapWallet` requires holding the mutex `cs_wallet`
  * Accessing the variable `nTimeFirstKey` requires holding the mutex `cs_wallet`

Tree-SHA512: 8a7b9a4e1f2147e77c04b817617a06304a2e2159148d3eb3514a3c09c41d77ef7e773df6e63880ad9acc026e00690f72d0c51f3f86279177f672d477423accca
2021-07-17 14:29:12 -05:00
UdjinM6
886024ba25
Merge pull request #4203 from UdjinM6/pr4196
ci: Add `--enable-werror` to arm and c++17 builds (and fix all issues found via these builds)
2021-07-17 02:37:07 +03:00
Kittywhiskers Van Gogh
db248e82a0 merge #18792: Remove boost from PeriodicFlush
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-07-16 20:21:39 +05:30
fanquake
f20f872592 merge #17405: wallet: Remove unused boost::this_thread::interruption_point
fad1de66a29bf6bd348a932150dad7d472feb3d0 wallet: Remove unused boost::this_thread::interruption_point (MarcoFalke)

Pull request description:

  `BerkeleyEnvironment::Open` is only called from the main thread (init) or an http rpc thread, neither of which can be interrupted, so remove the useless interruption point.

  `BerkeleyEnvironment{}` is only used in tests, which run in a single process/thread, so remove the useless interruption point.

ACKs for top commit:
  laanwj:
    ACK fad1de66a29bf6bd348a932150dad7d472feb3d0
  fanquake:
    ACK fad1de66a29bf6bd348a932150dad7d472feb3d0

Tree-SHA512: dacd8398e966e4a6ce5cf7d3ed821c9c267eff40b14c0635085441647cdb72d1642807f89355419f1710f814c7963e35a10d102d0b985c7198261dfc736256f8
2021-07-16 20:20:16 +05:30
UdjinM6
9bb7a608a2
Merge pull request #4260 from PastaPastaPasta/backport-triv-pr15
Backport triv pr15
2021-07-16 03:41:39 +03:00
UdjinM6
84769e128a
Merge pull request #4259 from PastaPastaPasta/backport-triv-pr13
backport: 'trivial' pr14
2021-07-16 03:38:13 +03:00
Jonas Schnelli
e8a9c28c82 Merge #20378: wallet: fix potential division by 0 in WalletLogPrintf
440f8d3abe97b96f434dad5216d417a08fc10253 fix potential devision by 0 (Jonas Schnelli)

Pull request description:

  #20344 removed the divide-by-zero sanitizer suppression in `wallet/wallet.cpp` but kept a potential devision by zero in `wallet.cpp`'s fee logging.

  Detected here https://bitcoinbuilds.org/index.php?job=ffb7d59f-379f-4f27-a273-a5595b8c5f07

ACKs for top commit:
  practicalswift:
    ACK 440f8d3abe97b96f434dad5216d417a08fc10253
  laanwj:
    Code review ACK 440f8d3abe97b96f434dad5216d417a08fc10253
  hebasto:
    re-ACK 440f8d3abe97b96f434dad5216d417a08fc10253

Tree-SHA512: 9f7903d1e567497c5f972d39e9629c059151e705dbed0a6b88f7c6650c50ecf820f78e3e0f3e629c661d45a938c5d7659faae7c61e47ca8b3bdb029661bca55a
2021-07-15 19:37:59 -05:00
MarcoFalke
b682ce2a79 Merge #20101: rpc: change no wallet loaded message to be clearer
907f142fc7e1d35f443be076367739faf11cc2cc rpc: change no wallet loaded message to be clearer (Andrew Chow)

Pull request description:

  Changes the no wallet is loaded rpc error message to be clearer that no wallet is loaded and how the user can load or create a wallet. Also changes the error code from METHOD_NOT_FOUND to RPC_WALLET_NOT_FOUND as that makes more sense.

ACKs for top commit:
  MarcoFalke:
    review ACK 907f142fc7e1d35f443be076367739faf11cc2cc
  kristapsk:
    ACK 907f142fc7e1d35f443be076367739faf11cc2cc. In addition to standard tests, just in case tested that this doesn't break anything with JoinMarket.
  meshcollider:
    utACK 907f142fc7e1d35f443be076367739faf11cc2cc

Tree-SHA512: 4b413e6ab5430ec75a79de9db6583f2f3f38ccdf71aa373d8386a56e64f07f92200c8107c8c82c92c7c431d739615977c208b771a24c5960fa8676789b5497a2
2021-07-15 19:30:07 -05:00
Wladimir J. van der Laan
e681ffc3bb
Merge #11911: Free BerkeleyEnvironment instances when not in use
14bc2a17dd03ccd89f65a302328763ff22c710c2 Trivial: add doxygen-compatible comments relating to BerkeleyEnvironment (Pierre Rochard)
88b1d956fe3e38f2d2dd805feee9dadb0be9e8a9 Tests: add unit tests for GetWalletEnv (Pierre Rochard)
f1f4bb7345b90853ec5037478173601035593d26 Free BerkeleyEnvironment instances when not in use (Russell Yanofsky)

Pull request description:

  Instead of adding BerkeleyEnvironment objects permanently to the g_dbenvs map, use reference counted shared pointers and remove map entries when the last BerkeleyEnvironment reference goes out of scope.

  This change was requested by @TheBlueMatt and makes code that sets up mock databases cleaner. The mock database environment will now go out of scope and be reset on destruction so there is no need to call BerkeleyEnvironment::Reset() during wallet construction to clear out prior state.

  This change does affect bitcoin behavior slightly. On startup, instead of same wallet environments staying open throughout VerifyWallets() and OpenWallets() calls, VerifyWallets() will open and close an environment once for each wallet, and OpenWallets() will create its own environment(s) later.

Tree-SHA512: 219d77a9e2268298435b86088f998795e059fdab1d2050ba284a9ab8d8a44961c9b5cf96e94ee521688108d23c6db680e3e3a999b8cb2ac2a8590f691d50668b
2021-07-16 01:37:51 +03:00
UdjinM6
07e7be34d2
Merge pull request #4250 from PastaPastaPasta/backport-triv-pr11
backport: 'trivial' pr11
2021-07-15 20:34:04 +03:00
Wladimir J. van der Laan
1555ee3a6c Merge #17746: refactor: rpc: Remove vector copy from listtransactions
25bc17fceb08ee9625c5e09e2579117ec6f7a1c5 refactor: rpc: Remove vector copy from listtransactions (João Barbosa)

Pull request description:

  Current approach
   - copy accumulated `ret` vector to `arrTmp`
   - drop unnecessary elements from `arrTmp`
   - reverse `arrTmp`
   - clear `ret`
   - copy `arrTmp` to the `ret`

  New approach
   - create a vector from the accumulated `ret` with just the necessary elements already reversed
   - copy it to the result

  This PR doesn't change behavior.

ACKs for top commit:
  ryanofsky:
    Code review ACK 25bc17fceb08ee9625c5e09e2579117ec6f7a1c5. Just comment and commit message tweaks since last review

Tree-SHA512: 87906561e3accdbdb0f4a8194cbcd76ea53ae53d0ce135b90bc54a5f77e300b14ef08505e7daf1fe52426f135442a743da5a027416a769bd454922357cebe7c0
2021-07-15 11:07:36 -05:00
PastaPastaPasta
8ef6ddead0
trivial: follow-up from 4186 review, add new-line at end of file (#4248) 2021-07-15 03:54:31 +03:00
UdjinM6
3004c3498b
Merge pull request #4245 from PastaPastaPasta/backport-triv-pr9
backport: 'trivial' pr9
2021-07-14 02:52:00 +03:00
PastaPastaPasta
e98241da5d
Merge pull request #4186 from kittywhiskers/psbt
merge #13269, #13425,  #13557,  #13721,  #13666, #13723: BIP 174 PSBT Serializations and RPCs
2021-07-13 13:54:34 -05:00
Wladimir J. van der Laan
ecf642bb8a
Merge #16952: gui: make sure to update the UI when deleting a transaction
addaf8af8268d918973883a304025d40af5a33c1 make sure to update the UI when deleting a transaction (Jonas Schnelli)

Pull request description:

  `CWallet::ZapSelectTx` removes transactions from the internal model, but leaves the UI in the dark.
  Adding a `NotifyTransactionChanged()` should avoid having invalid transactions in the GUI.

  Fixes #16950

ACKs for top commit:
  fanquake:
    ACK addaf8af8268d918973883a304025d40af5a33c1 - tested that this fixes #16950
  Sjors:
    tACK addaf8a: tested with an unpruned wallet by calling `removeprunedfunds` on an RBF-replaced transaction. It neatly disappears from the UI.
  kristapsk:
    ACK addaf8af8268d918973883a304025d40af5a33c1 (tested both with and without this change)

Tree-SHA512: 65e8c690847f7499e82c9fef67b60d9aaa63c853732fe7fa7281da33054fcdcd9d24f5b86de71b0827728c25bac8efb7db445863f990304ebfee6fc450620c47
2021-07-13 13:14:03 -05:00
PastaPastaPasta
48487122ad
Merge pull request #4239 from Munkybooty/backports-0.18-pr7
Backports 0.18 pr7
2021-07-13 11:51:50 -05:00
UdjinM6
d1ff298c8e
Add more compile time checking for cs_main runtime locking assertions 2021-07-13 19:43:33 +03:00
UdjinM6
b472a7025a
Initialize nBytes in CreateTransaction 2021-07-13 19:43:33 +03:00
UdjinM6
4aa8689a15
Remove duplicates/add checks where needed for cs_main/cs_wallet 2021-07-13 19:43:33 +03:00
UdjinM6
0f17a13b9b
Remove duplicate rescanblockchain declaration
leftover from 13899
2021-07-13 19:43:30 +03:00
UdjinM6
a18707e397
Remove/fix unused variables 2021-07-13 19:43:30 +03:00
Kittywhiskers Van Gogh
622c7034da trivial: replace references of bitcoin with dash 2021-07-13 22:00:18 +05:30
Kittywhiskers Van Gogh
1e15a6116d core: remove all leftover references to segwit/rbf 2021-07-13 22:00:18 +05:30
Kittywhiskers Van Gogh
8b891c2b10 Merge #13723: PSBT key path cleanups 2021-07-13 22:00:18 +05:30
Kittywhiskers Van Gogh
737ccd2de3 Merge #13721: Bugfixes for BIP 174 combining and deserialization 2021-07-13 22:00:18 +05:30
Kittywhiskers Van Gogh
c00b3e942f Merge #13557: BIP 174 PSBT Serializations and RPCs 2021-07-13 22:00:17 +05:30
Wladimir J. van der Laan
3e388c6c91 Merge #13419: [tests] Speed up knapsack_solver_test by not recreating wallet 100 times.
a679109be40491222c458fdbef58f68509dae0bd Speed up knapsack_solver_test by not recreating wallet 100 times. (lucash.dev@gmail.com)

Pull request description:

  Optimization of `knapsack_solver_test`by moving an expensive wallet creation to outside a 100x for loop.

  On my (slow) machine:

  ```
  before:        9.8s
  after:         6.2s
  --------------------
  saved:         3.6s (36%)
  ```

  This PR was split from #13050. Also see #10026.

Tree-SHA512: bde1a856b5f076a5845e14d1a924855c8c91742c3139b47903081289b21d01fef6f2d1fd8947058728a57de56f877bab3866af8cd1d25ba2daa44411752cdb2f
2021-07-11 10:16:15 -04:00
UdjinM6
0f027caba2
Use one global string for "CoinJoin" in gui related stuff (#4117) 2021-07-11 12:28:50 +03:00
UdjinM6
08558d67ee
Merge pull request #4235 from PastaPastaPasta/backport-triv-pr7
backport: 'trivial' pr7
2021-07-10 21:46:25 +03:00
MeshCollider
037830d21f Merge #15880: utils and libraries: Replace deprecated Boost Filesystem functions
a0a222eec Replace deprecated Boost Filesystem function (Hennadii Stepanov)
4f65af97b Remove dead code for walletFile check (Hennadii Stepanov)

Pull request description:

  Boost Filesystem `basename()` and `extension()` functions are [deprecated since v1.36.0](https://www.boost.org/doc/libs/1_36_0/libs/filesystem/doc/reference.html#Convenience-functions).

  See more: https://lists.boost.org/Archives/boost/2010/01/160905.php

  Also this PR prevents further use of deprecated Boost Filesystem functions.
  Ref: https://www.boost.org/doc/libs/1_64_0/libs/filesystem/doc/index.htm#Coding-guidelines

  Note: On my Linux system Boost 1.65.1 header `/usr/include/boost/filesystem/convenience.hpp` contains:
  ```c++
  # ifndef BOOST_FILESYSTEM_NO_DEPRECATED

      inline std::string extension(const path & p)
      {
        return p.extension().string();
      }

      inline std::string basename(const path & p)
      {
        return p.stem().string();
      }

      inline path change_extension( const path & p, const path & new_extension )
      {
        path new_p( p );
        new_p.replace_extension( new_extension );
        return new_p;
      }

  # endif
  ```

  UPDATE:
  Also removed unused code as [noted](https://github.com/bitcoin/bitcoin/pull/15880#discussion_r279386614) by **ryanofsky**.

ACKs for commit a0a222:
  Empact:
    utACK a0a222eec0
  practicalswift:
    utACK a0a222eec0b7f615a756e5e0dcec9b02296f999c
  fanquake:
    utACK a0a222e
  ryanofsky:
    utACK a0a222eec0b7f615a756e5e0dcec9b02296f999c. Only change is dropping assert and squashing first two commits.

Tree-SHA512: bc54355441c49957507eb8d3a5782b92d65674504d69779bc16b1b997b2e7424d5665eb6bfb6e10b430a6cacd2aca70af2f94e5f7f10bea24624202834ad35c7
2021-07-10 12:10:51 -05:00
UdjinM6
90266a9465
Merge pull request #4234 from UdjinM6/backports-0.17-pr35
Backports 0.17 pr35
2021-07-10 12:11:49 +03:00
Munkybooty
eae3b9abc4 Merge #13083: Add compile time checking for cs_main runtime locking assertions
9e0a514112 Add compile time checking for all cs_main runtime locking assertions (practicalswift)

Pull request description:

  Add compile time checking for `cs_main` runtime locking assertions.

  This PR is a subset of #12665. The PR was broken up to make reviewing easier.

  The intention is that literally all `EXCLUSIVE_LOCKS_REQUIRED`/`LOCKS_EXCLUDED`:s added in this PR should follow either directly or indirectly from `AssertLockHeld(…)`/`AssertLockNotHeld(…)`:s already existing in the repo.

  Consider the case where function `A(…)` contains `AssertLockHeld(cs_foo)` (without
  first locking `cs_foo` in `A`), and that `B(…)` calls `A(…)` (without first locking `cs_main`):
  * It _directly_ follows that: `A(…)` should have an `EXCLUSIVE_LOCKS_REQUIRED(cs_foo)` annotation.
  * It _indirectly_ follows that: `B(…)` should have an `EXCLUSIVE_LOCKS_REQUIRED(cs_foo)` annotation.

Tree-SHA512: 120e7410c4c223dbc7d42030b1a19e328d01a55f041bb6fb5eaac10ac35cb0c5d469b9b3bda6444731164c73b88ac6495a00890672b107d9305e891571f64dd6

# Conflicts:
#	src/validation.cpp
#	src/validation.h
#	src/wallet/feebumper.cpp
#	src/wallet/rpcwallet.cpp
#	src/wallet/wallet.h

# Conflicts:
#	src/wallet/wallet.h
2021-07-07 16:30:58 -04:00