Commit graph

14527 commits

Author SHA1 Message Date
João Barbosa
0fc81a1e87 gui: Fix payAmount tooltip in SendCoinsEntry 2019-10-23 11:38:30 +01:00
Wladimir J. van der Laan
a884b32854
Merge #16911: wallet: Only check the hash of transactions loaded from disk
cd68594dcd Only check the hash of transactions loaded from disk (Andrew Chow)

Pull request description:

  It feels unnecessary to do a full `CheckTransaction` for every transaction saved in the wallet. It should not be possible for an invalid transaction to get into the wallet in the first place, and if there is any disk corruption, the hash check will catch it.

ACKs for top commit:
  MarcoFalke:
    ACK cd68594dcd
  laanwj:
    ACK cd68594dcd
  promag:
    ACK cd68594dcd, AFAICT the check is not needed, hash comparison gives data integrity.

Tree-SHA512: 5b2e719f76097cfbf125392db6cc6c764355c81f0b7a5b60aee4b06af1afcca80cfd38a3cf5307fd9e2c1afc405f8321929a4552943099a8161e6762965451fb
2019-10-23 12:05:37 +02:00
Wladimir J. van der Laan
ceda6e8b74
Merge #17180: gui: Improved tooltip for send amount field
088a730fe6 static tooltip (JeremyCrookshank)

Pull request description:

  I noticed that on Bitcoin sends the tooltip wasn't very clear for new users and I hope my PR is more concise. If it needs changing more will happily change too 👍
  ![IMG_20191017_192739](https://user-images.githubusercontent.com/46864828/67036925-75d45380-f114-11e9-88bf-bab58161f80a.jpg)

ACKs for top commit:
  laanwj:
    ACK 088a730fe6

Tree-SHA512: 2b1103ac934d8f68d22333af3c0f5d4228b665b1e507378d4ae5b83cc2b6d6aeb46a3d68298cca93feb839db5caa560322c8df5261dc2f7db5abeed9f0dd9c69
2019-10-23 12:01:00 +02:00
Pieter Wuille
ed2dc5e48a
Add override/final modifiers to V1TransportDeserializer 2019-10-23 09:27:35 +02:00
Pieter Wuille
f342a5e61a
Make resetting implicit in TransportDeserializer::Read() 2019-10-23 09:27:32 +02:00
Pieter Wuille
6a91499496
Remove oversized message detection from log and interface 2019-10-23 09:27:25 +02:00
Anthony Towns
168b781fe7 Continue relaying transactions after they expire from mapRelay 2019-10-23 11:36:24 +10:00
Sebastian Falbesoner
a0fc076476 refactor: test/bench: dedup Build{Crediting,Spending}Transaction()
prototypes used in src/test/script_tests.cpp:
- CMutableTransaction BuildCreditingTransaction(const CScript& scriptPubKey, int nValue = 0);
- CMutableTransaction BuildSpendingTransaction(const CScript& scriptSig, const CScriptWitness& scriptWitness, const CTransaction& txCredit);

prototypes used in bench/verify_script.cpp:
- CMutableTransaction BuildCreditingTransaction(const CScript& scriptPubKey);
- CMutableTransaction BuildSpendingTransaction(const CScript& scriptSig, const CMutableTransaction& txCredit);

The more generic versions from the script tests are moved into a new file pair
transaction_utils.cpp/h and the calls are adapted accordingly in the
verify_script benchmark (passing the nValue of 1 explicitely for
BuildCreditingTransaction(), passing empty scriptWitness explicitely and
converting txCredit parameter to CTransaction in BuildSpendingTransaction()).
2019-10-23 01:59:32 +02:00
Jeffrey Czyz
8734c856f8 Replace the LogPrint function with a macro
Calling LogPrint with a category that is not enabled results in
evaluating the remaining function arguments, which may be arbitrarily
complex (and possibly expensive) expressions. Defining LogPrint as a
macro prevents this unnecessary expression evaluation.

This is a partial revert of #14209. The decision to revert is discussed
in #16688, which adds verbose logging for validation event notification.
2019-10-22 13:44:51 -07:00
JeremyCrookshank
088a730fe6 static tooltip 2019-10-22 20:36:38 +01:00
Jonas Schnelli
b0e10ff4df
Force CNetMessage::m_recv to use std::move 2019-10-22 15:28:32 +02:00
Sebastian Falbesoner
5b44a75493 refactor: Remove unused CExt{Pub,}Key (de)serialization methods
The serialization/deserialization methods for the classes CExtKey and
CExtPubKey were only used in the BIP32 unit tests, where the relevant parts are
removed as well.
2019-10-22 00:07:31 +02:00
Jeremy Rubin
8f174ef112 Systematize style of IsTrusted single line if 2019-10-21 13:16:22 -07:00
Jeremy Rubin
b49dcbedf7 update variable naming conventions for IsTrusted 2019-10-21 13:16:22 -07:00
Jeremy Rubin
5dd7da4ccd Reuse trustedParents in looped calls to IsTrusted 2019-10-21 13:16:22 -07:00
Jeremy Rubin
595f09d6de Cache tx Trust per-call to avoid DoS 2019-10-21 13:16:22 -07:00
Jeremy Rubin
dce032ce29 Make IsTrusted scan parents recursively 2019-10-21 13:16:22 -07:00
MapleLaker
4896bacc00 Add testcase to simulate bitcoin schema in leveldb 2019-10-21 11:15:57 -04:00
Wladimir J. van der Laan
a22b62481a
Merge #17070: wallet: Avoid showing GUI popups on RPC errors
facec1c643 wallet: Avoid showing GUI popups on RPC errors (MarcoFalke)

Pull request description:

  RPC errors and warnings are shown as popups in the GUI instead of being returned to the RPC caller. For example,

  ```
  $ ./src/bitcoin-cli loadwallet $(pwd)/./test/functional/data/wallets/high_minversion/
  error code: -4
  error message:
  Wallet loading failed.
  ```

  gives me a GUI popup and no reason why loading the wallet failed.

  After this pull request:

  ```
  $ ./src/bitcoin-cli loadwallet $(pwd)/./test/functional/data/wallets/high_minversion/
  error code: -4
  error message:
  Wallet loading failed: Error loading /home/marco/workspace/btc_bitcoin_core/./test/functional/data/wallets/high_minversion/wallet.dat: Wallet requires newer version of Bitcoin Core

ACKs for top commit:
  laanwj:
    Code review ACK facec1c643

Tree-SHA512: c8274bbb02cfcf71676eeec1e773e51fb3538cf93f82e7cb8536f4716d44ed819cdc162dfc039ac7386a4db381a734cdb27fd32567043a1180c02519fbcba194
2019-10-21 13:48:27 +02:00
Wladimir J. van der Laan
a75cb122ed
Merge #17195: gui: send amount placeholder value
57e2edea0b Send amount shows minimum amount placeholder (JeremyCrookshank)

Pull request description:

  Noticed that there wasn't a default value for the send amount. However if you put a value in or click the up and down arrows you're unable to get it blank again, so it makes sense that it has a default value. I hope this also makes it more clear that users can send less than 1 BTC if it shows the 8 decimal places

  PR:
  ![Capture](https://user-images.githubusercontent.com/46864828/67132088-549c6180-f1ff-11e9-9ba5-67fdcd6db894.PNG)

ACKs for top commit:
  promag:
    ACK 57e2edea0b.
  GChuf:
    ACK 57e2edea0b
  laanwj:
    ACK 57e2edea0b, this is a surprisingly compact solution too

Tree-SHA512: 354590d2a88231b8649f7ae985c8a7864d74ca0e1f8603cb1730ba46747084de90ee6285ce4d39ee04b054fb9cd2d78ebc71146f3af694c37a8a3aff7f051800
2019-10-21 12:29:52 +02:00
Wladimir J. van der Laan
0d6b6b7c65
Merge #17191: random: remove call to RAND_screen() (Windows only)
e892f9648a random: remove call to RAND_screen() (Windows only) (fanquake)

Pull request description:

  Follow up to https://github.com/bitcoin/bitcoin/pull/17151 where there were multiple calls to also remove our call to RAND_screen().

ACKs for top commit:
  MarcoFalke:
    unsigned ACK e892f9648a
  laanwj:
    ACK e892f9648a

Tree-SHA512: 1b846016d91e8113f90466b61fcaf0574edb6b4726eba1947549e2ac28907e1318d893f7b303e756f19730c8507c79b10e08d54b97153224b585ff1e0ac1953e
2019-10-21 09:53:32 +02:00
Sebastian Falbesoner
7ca68e1461 wallet: Remove unused GetLabelName 2019-10-20 21:00:33 +02:00
JeremyCrookshank
57e2edea0b Send amount shows minimum amount placeholder 2019-10-19 13:46:59 +01:00
fanquake
b6e34afe97
Merge #17184: util: Filter out macOS process serial number
b5f0be3879 util: Filter out macOS process serial number (Hennadii Stepanov)

Pull request description:

  Fix #17179

ACKs for top commit:
  laanwj:
    ACK b5f0be3879
  MarcoFalke:
    unsigned ACK b5f0be3879
  promag:
    ACK b5f0be3879.
  fanquake:
    ACK b5f0be3879 - Tested that this fixes #17179.

Tree-SHA512: 84ce859e53ebc7ad2d0a45e954243ef6efee640f1e0212322f68a317e4361a216ecb4b5a3a410ab31613adc285c8d3840fbf41fa9da9019be3d734db6b9427cd
2019-10-18 17:38:38 -04:00
MarcoFalke
faeb666536
util: Add CHECK_NONFATAL and use it in src/rpc 2019-10-18 17:19:36 -04:00
fanquake
e892f9648a
random: remove call to RAND_screen() (Windows only)
Follow up to https://github.com/bitcoin/bitcoin/pull/17151 where
there were multiple calls to also remove our call to RAND_screen().
2019-10-18 14:24:21 -04:00
fanquake
ddc3cf26ff
Merge #17151: gui: remove OpenSSL PRNG seeding (Windows, Qt only)
cc3b5289ef gui: remove OpenSSL PRNG seeding (Windows, Qt only) (fanquake)

Pull request description:

  This removes the code introduced in [#4399](https://github.com/bitcoin/bitcoin/pull/4399) that attempts to add additional entroy to the OpenSSL PRNG using `RAND_event()`. This is specific to bitcoin-qt running on Windows.

  ```
  RAND_event() collects the entropy from Windows events such as mouse movements and other user interaction.
  It should be called with the iMsg, wParam and lParam arguments of all messages sent to the window procedure.
  It will estimate the entropy contained in the event message (if any), and add it to the PRNG.
  The program can then process the messages as usual.
  ```

  Besides BIP70, this is the last place we are directly using OpenSSL in the GUI code. All other OpenSSL usage is in [random.cpp](https://github.com/bitcoin/bitcoin/blob/master/src/random.cpp).

  Note that we are still also still doing other Windows specific gathering using [RandAddSeedPerfmon](https://github.com/bitcoin/bitcoin/blob/master/src/random.cpp#L268) and [RAND_screen()](https://github.com/bitcoin/bitcoin/blob/master/src/random.cpp#L600) on top of the other generation we do.

  Also note that if RAND_event returns `0` here (PRNG has **NOT** been seeded with enough data), we're just logging a single message and continuing, which also seems less than ideal.

ACKs for top commit:
  laanwj:
    ACK cc3b5289ef
  MarcoFalke:
    unsigned ACK cc3b5289ef
  theuni:
    ACK cc3b5289ef.

Tree-SHA512: 0bb18779cf37f6670e3e5ac6a6a38e5f95199491b2684f9e56391c76f030fe1621d6df064239c2a398f228129fdf3f2220fc8cd15b2b92ecf2ea6d98a79b2175
2019-10-18 14:23:47 -04:00
MarcoFalke
0ff7cd7d0c
Merge #16889: Add some general std::vector utility functions
7d8d3e6a2a Add tests for util/vector.h's Cat and Vector (Pieter Wuille)
e65e61c812 Add some general std::vector utility functions (Pieter Wuille)

Pull request description:

  This is another general improvement extracted from #16800 .

  Two functions are added are:

  * Vector(arg1,arg2,arg3,...) constructs a vector with the specified arguments as elements. The vector's type is derived from the arguments. If some of the arguments are rvalue references, they will be moved into place rather than copied (which can't be achieved using list initialization).
  * Cat(vector1,vector2) returns a concatenation of the two vectors, efficiently moving elements when relevant.

  Vector generalizes (and replaces) the `Singleton` function in src/descriptor.cpp, and `Cat` replaces the function in bech32.cpp

ACKs for top commit:
  laanwj:
    ACK 7d8d3e6a2a
  MarcoFalke:
    ACK 7d8d3e6a2a (enjoyed reading the tests, but did not compile)

Tree-SHA512: 92325f14e90d7e7d9d920421979aec22bb0d730e0291362b4326cccc76f9c2d865bec33a797c5c0201773468c3773cb50ce52c8eee4c1ec1a4d10db5cf2b9d2a
2019-10-18 09:57:00 -04:00
John Newbery
9e95931865 [wallet] Remove state argument from CWallet::CommitTransaction
The `state` return argument has not been set since commit 611291c198.
Remove it (and the one place that it's used in a calling function).
2019-10-18 09:43:01 -04:00
John Newbery
d1734f9a3b [wallet] Remove return value from CommitTransaction()
CommitTransaction returns a bool to indicate success, but since commit
b3a74100b8 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.
2019-10-18 09:26:32 -04:00
John Newbery
b6f486a02b [wallet] Add doxygen comment to CWallet::CommitTransaction() 2019-10-18 09:26:32 -04:00
fanquake
f2a094884d
Merge #17186: gui: Add placeholder text to the sign message field
7005d6ab8f gui: Add placeholder text to the sign message field (Danny-Scott)

Pull request description:

  When using the sign message functionality I noticed the "message" field had no label or placeholder text to highlight what it's for.

  I've added the placeholder text to match the tool tip to help it be more user friendly.

ACKs for top commit:
  hebasto:
    Re-ACK 7005d6ab8f
  fanquake:
    ACK 7005d6ab8f

Tree-SHA512: 17fe51c134f6373d8d5f9ca98b15bd936da4e61aa5258ceb5d318575d49b43cbfde6f4c3f720eb5928206902e6ba52811ba08737a03c95224e45dabc947d9d11
2019-10-18 08:14:40 -04:00
Danny-Scott
7005d6ab8f gui: Add placeholder text to the sign message field 2019-10-18 12:21:42 +01:00
Jonas Schnelli
b9b58f8f68
Merge #15084: gui: don't disable the sync overlay when wallet is disabled
b3b6b6f62f gui: don't disable the sync overlay when wallet is disabled (Ben Carman)

Pull request description:

  Continuation of #13848.

  When running with `-disablewallet` the sync modal is now available by clicking on the progress bar or `syncing` icon.

  [Current Image of what the window looks like](https://imgur.com/6LsoT2l)

  Fixes #13828.

ACKs for top commit:
  jonasschnelli:
    Tested ACK b3b6b6f62f

Tree-SHA512: 325bc22a0b692bfb8fcc9d84e02dfc506146028b97b3609e23c2c45288c79b8aead1ad2e9b8d692f5f6771b4d2aee63fbe71bfaeaf17d260865da32ab3631e07
2019-10-18 09:15:20 +02:00
Jonas Schnelli
efecb74677
Use adapter pattern for the network deserializer 2019-10-18 08:56:08 +02:00
Jonas Schnelli
1a5c656c31
Remove transport protocol knowhow from CNetMessage / net processing 2019-10-18 08:56:08 +02:00
Jonas Schnelli
6294ecdb8b
Refactor: split network transport deserializing from message container 2019-10-18 08:56:06 +02:00
Hennadii Stepanov
b5f0be3879
util: Filter out macOS process serial number 2019-10-18 09:12:15 +03:00
fanquake
4daadce36c
Merge #17162: chain: Remove CBlockIndex::SetNull helper
fa0467326f chain: Set all CBlockIndex members to null, remove SetNull helper (MarcoFalke)

Pull request description:

  The first commit removes the `SetNull` helper and inlines the member initialization (C++11). See https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#c-data-structures for rationale.

  <strike>The second commit adds the `cs_main` lock annotation to `RaiseValidity`. See also #17161.</strike>

ACKs for top commit:
  promag:
    Code review ACK fa0467326f.
  practicalswift:
    ACK fa0467326f -- diff still looks correct :)
  laanwj:
    ACK fa0467326f, this makes it easy to see that all fields are initialized.

Tree-SHA512: 1b2b9fb0951c03c75b9cce322b89d4ecc9a364ae78b94d91b0b4669437824394dfada820ab6f74dfac3193f602899abfdc244ae2d9351ad293f555488f03470e
2019-10-17 14:53:33 -04:00
Wladimir J. van der Laan
048e456fc4
Merge #17119: doc: Fix broken bitcoin-cli examples
85016e52f6 [rpc] Fix broken bitcoin-cli examples (Andrew Toth)

Pull request description:

  This fixes the `bitcoin-cli` examples for `combinerawtransaction`, `combinepsbt` and `testmempoolaccept`. They currently return `Error parsing JSON`.

ACKs for top commit:
  laanwj:
    ACK 85016e52f6

Tree-SHA512: b561f68f7a188dc91dab1ceb98da3ac3e232143ab2b906c90f95c6b74b584599d0f3b51f067cdd3b1153931f95b3dc385e453b1a0dde86f9cb549b94560f219d
2019-10-17 15:40:26 +02:00
MarcoFalke
fcf1ebde3d
Merge #17169: doc: correct function name in ReportHardwareRand()
5013171eaf doc: correct function name in ReportHardwareRand() (fanquake)

Pull request description:

  The function is `InitHardwareRand` not `HWRandInit`.

  46d6930f8c/src/random.cpp (L99)

ACKs for top commit:
  laanwj:
    ACK 5013171eaf
  theStack:
    ACK 5013171eaf

Tree-SHA512: c25e1bb56e923961fc8a9178d751222b60f5ca36be84abf8fd1ac971f3a9b79b587ed9d8a4a175981b66f3fd5ad7edd6697d343e4dc4852351a1510718745455
2019-10-17 08:26:09 -04:00
MarcoFalke
4f42284fc0
Merge #17140: test: Fix bug in blockfilter_index_tests.
f59bbb61af test: Fix bug in blockfilter_index_tests. (Jim Posen)

Pull request description:

  The test case tests a chain reorganization, however the two chains were generated in the same manner and thus produced the same blocks.

  This issue was [pointed out](https://github.com/bitcoin/bitcoin/pull/14121#discussion_r334282663) by MarcoFalke.

ACKs for top commit:
  MarcoFalke:
    Thanks! ACK f59bbb61af (looked at the diff on GitHub, didn't compile, nor run tests)

Tree-SHA512: a2f063ae9312051ffc2a3fcc1116a6a8ac09beeef261bc40aa3ff7270ff4de22a790eb19fec6b15ba1eb46e78f1f317bfd91472d8581b95bb9441a56b102554e
2019-10-17 08:22:05 -04:00
fanquake
5013171eaf
doc: correct function name in ReportHardwareRand() 2019-10-16 20:20:59 -04:00
MarcoFalke
46d6930f8c
Merge #16659: refactoring: Remove unused includes
084e17cebd 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 084e17cebd. 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
2019-10-16 17:33:57 -04:00
User
090b75c14b p2p: Avoid allocating memory for addrKnown where we don't need it 2019-10-16 17:06:20 -04:00
MarcoFalke
fa0467326f
chain: Set all CBlockIndex members to null, remove SetNull helper 2019-10-16 13:06:50 -04:00
Pieter Wuille
7d8d3e6a2a Add tests for util/vector.h's Cat and Vector 2019-10-16 08:57:26 -07:00
Pieter Wuille
e65e61c812 Add some general std::vector utility functions
Added are:

* Vector(arg1,arg2,arg3,...) constructs a vector with the specified
  arguments as elements. The vector's type is derived from the
  arguments. If some of the arguments are rvalue references, they
  will be moved into place rather than copied (which can't be achieved
  using list initialization).

* Cat(vector1,vector2) returns a concatenation of the two vectors,
  efficiently moving elements when relevant.

Vector generalizes (and replaces) the Singleton function in
src/descriptor.cpp, and Cat replaces the Cat function in bech32.cpp
2019-10-16 08:56:57 -07:00
John Newbery
8bba91b22d [wallet] Fix whitespace in CWallet::CommitTransaction()
Reviewer hint: use --ignore-all-space git diff option for review.
2019-10-16 10:57:27 -04:00
Wladimir J. van der Laan
c34b88620d
Merge #17095: util: Filter control characters out of log messages
d7820a1250 util: Filter control characters out of log messages (Wladimir J. van der Laan)

Pull request description:

  Belts and suspenders: make sure outgoing log messages don't contain potentially suspicious characters, such as terminal control codes.

  This escapes control characters except newline ('\n') in C syntax. It escapes instead of removes them to still allow for troubleshooting issues where they accidentally end up in strings (it is a debug log, after all).

  (more checks could be added such as UTF-8 validity and unicode code-point range checking—this is substantially more involved and would need to keep track of state between characters and even `LogPrint` calls as they could end up split up—but escape codes seem to be the most common attack vector for terminals.)

ACKs for top commit:
  practicalswift:
    ACK d7820a1250 - tested and works as expected :)

Tree-SHA512: 0806265addebdcec1062a6def3e903555e62ba5e93967ce9ee6943d16462a222b3f41135a5bff0a76966ae9e7ed75f211d7785bceda788ae0b0654bf3fd891bf
2019-10-16 16:04:27 +02:00