Commit graph

215 commits

Author SHA1 Message Date
Andrew Poelstra
3894f4419c Merge 3d57015aa2 into merged_master (Bitcoin PR #19491) 2020-11-26 04:25:00 +00:00
Andrew Poelstra
2468108f7b Merge b8740d6737 into merged_master (Bitcoin PR #18468) 2020-11-26 01:09:07 +00:00
Andrew Poelstra
f32fd217a5 Merge ec4d27fa8b into merged_master (Bitcoin PR #18216) 2020-11-26 01:08:40 +00:00
Andrew Poelstra
fd37b7c5d6 Merge 54f812d9d2 into merged_master (Bitcoin PR #18673) 2020-11-26 01:08:23 +00:00
Andrew Poelstra
aeae0e2742 Merge 0dc6218c79 into merged_master (Bitcoin PR #18270) 2020-11-26 01:08:03 +00:00
Andrew Poelstra
5b3e849748 Merge 2e97d80017 into merged_master (Bitcoin PR #18134) 2020-11-26 01:08:02 +00:00
Andrew Poelstra
cc668250eb Merge 97aadf98d0 into merged_master (Bitcoin PR #16117) 2020-11-26 01:07:50 +00:00
Andrew Poelstra
a0d00c7c75 Merge 9027960932 into merged_master (Bitcoin PR #18225) 2020-11-26 01:07:47 +00:00
Andrew Poelstra
f0e3e31c0d Merge 03f98b15ad into merged_master (Bitcoin PR #17577) 2020-11-26 01:07:45 +00:00
Andrew Poelstra
9a8c2b0e3f Merge 8a56f79d49 into merged_master (Bitcoin PR #17482) 2020-11-26 01:07:40 +00:00
Andrew Poelstra
2c846f5fa3 Merge da3611a580 into merged_master (Elements PR #808) 2020-11-26 00:29:43 +00:00
Andrew Poelstra
7c53615bb6 Merge af05bd9e1e into merged_master (Bitcoin PR #17891) 2020-11-14 16:52:07 +00:00
Andrew Poelstra
077355e651 Merge 6677be64f6 into merged_master (Bitcoin PR #17473) 2020-11-14 16:52:01 +00:00
Andrew Poelstra
7d5d0e9d6a Merge 94c6f2bba4 into merged_master (Bitcoin PR #17593) 2020-11-14 16:52:00 +00:00
Andrew Poelstra
ba2897d87a Merge 6b51cce65a into merged_master (Bitcoin PR #17753) 2020-11-14 16:51:59 +00:00
Andrew Poelstra
35020e3a32 Merge a7aec7ad97 into merged_master (Bitcoin PR #15934) 2020-11-09 23:10:09 +00:00
Andrew Poelstra
54dd52556e Merge 772673dfbe into merged_master (Bitcoin PR #16978) 2020-11-09 23:10:08 +00:00
Andrew Poelstra
056b9bb06d Merge 46fc4d1a24 into merged_master (Bitcoin PR #17384) 2020-11-09 23:10:08 +00:00
Andrew Poelstra
eace3e1898 Merge 6f4e247357 into merged_master (Bitcoin PR #17390) 2020-11-09 23:10:08 +00:00
Andrew Poelstra
df7c1ad3d7 Merge 224c19645f into merged_master (Bitcoin PR #17388) 2020-11-09 23:09:06 +00:00
Andrew Poelstra
bb87204b71 Merge cfec3e01b4 into merged_master (Bitcoin PR #17266) 2020-11-09 21:20:46 +00:00
Andrew Poelstra
4749945d77 Merge 0ff7cd7d0c into merged_master (Bitcoin PR #16889) 2020-11-09 21:20:42 +00:00
Andrew Poelstra
c704a02e4e Merge c34b88620d into merged_master (Bitcoin PR #17095) 2020-11-09 21:20:40 +00:00
Andrew Poelstra
f3f736f76d Merge befdef8aee into merged_master (Bitcoin PR #16887) 2020-11-09 21:20:37 +00:00
Andrew Poelstra
3fd0c0af03 Merge 52b9797119 into merged_master (Bitcoin PR #16670) 2020-11-09 21:20:17 +00:00
Andrew Poelstra
527d180369 Merge b799ebcc17 into merged_master (Bitcoin PR #16566) 2020-11-09 21:20:13 +00:00
Andrew Poelstra
9c3480fea9 Merge 3a3d8b8357 into merged_master (Bitcoin PR #16097) 2020-11-09 21:20:11 +00:00
Andrew Poelstra
9fbf23d6f2 Merge 3dd46d1730 into merged_master (Elements PR #675) 2020-11-09 21:19:26 +00:00
Andrew Poelstra
9274da2dfc Merge 7400135b79 into merged_master (Bitcoin PR #16278) 2020-11-09 03:58:17 +00:00
Andrew Poelstra
f81f984f36 Merge c52776e6ff into merged_master (Bitcoin PR #16252) 2020-11-09 03:57:55 +00:00
Andrew Poelstra
0267d06c6a Merge 62efead8a8 into merged_master (Bitcoin PR #16046) 2020-10-29 23:41:15 +00:00
Andrew Poelstra
24e3d9635c Merge 6f4ba6492a into merged_master (Bitcoin PR #15988) 2020-10-29 17:04:58 +00:00
Andrew Poelstra
6674d9e91f Merge 10ed4dff24 into merged_master (Bitcoin PR #15869) 2020-10-29 02:06:04 +00:00
Andrew Poelstra
e6343c7258 Merge 0c9de67f34 into merged_master (Bitcoin PR #15352) 2020-10-28 16:43:51 +00:00
Andrew Poelstra
161bcd2ae8 Merge 78295e97b8 into merged_master (Bitcoin PR #15788) 2020-10-28 16:43:03 +00:00
Andrew Poelstra
175b8550f8 Merge c3b1cb958f into merged_master (Bitcoin PR #15573) 2020-10-27 23:27:13 +00:00
Andrew Poelstra
a599a81d3a Merge 789b0bbf2a into merged_master (Bitcoin PR #15335) 2020-10-27 21:39:17 +00:00
MarcoFalke
fa53635381
util: Make Assert work with any value 2020-07-11 15:02:07 +02:00
Pieter Wuille
2676aeadfa Simplify usage of Span in several places 2020-05-12 14:19:40 -07:00
Ben Woosley
df37377e30
test: Fix outstanding -Wsign-compare errors 2020-05-08 11:18:43 -07:00
MarcoFalke
fac5c37300
scripted-diff: Sort test includes
-BEGIN VERIFY SCRIPT-
 # Mark all lines with #includes
 sed -i --regexp-extended -e 's/(#include <.*>)/\1 /g' $(git grep -l '#include' ./src/bench/ ./src/test ./src/wallet/test/)
 # Sort all marked lines
 git diff -U0 | ./contrib/devtools/clang-format-diff.py -p1 -i -v
-END VERIFY SCRIPT-
2020-04-16 13:32:36 -04:00
MarcoFalke
0dc6218c79
Merge #18270: util: Fail to parse whitespace-only strings in ParseMoney(...) (instead of parsing as zero)
100213c5c2 util: Fail to parse space-only strings in ParseMoney(...) (instead of parsing as zero) (practicalswift)

Pull request description:

  Fail to parse whitespace-only strings in `ParseMoney(...)` (instead of parsing as `0`).

  This is a follow-up to #18225 ("util: Fail to parse empty string in `ParseMoney`") which made `ParseMoney("")` fail instead of parsing as `0`.

  Context: https://github.com/bitcoin/bitcoin/pull/18225#issuecomment-592994765

  Current non-test call sites:

  ```
  $ git grep ParseMoney ":(exclude)src/test/"
  src/bitcoin-tx.cpp:    if (!ParseMoney(strValue, value))
  src/init.cpp:        if (!ParseMoney(gArgs.GetArg("-incrementalrelayfee", ""), n))
  src/init.cpp:        if (!ParseMoney(gArgs.GetArg("-minrelaytxfee", ""), n)) {
  src/init.cpp:        if (!ParseMoney(gArgs.GetArg("-blockmintxfee", ""), n))
  src/init.cpp:        if (!ParseMoney(gArgs.GetArg("-dustrelayfee", ""), n))
  src/miner.cpp:    if (gArgs.IsArgSet("-blockmintxfee") && ParseMoney(gArgs.GetArg("-blockmintxfee", ""), n)) {
  src/util/moneystr.cpp:bool ParseMoney(const std::string& str, CAmount& nRet)
  src/util/moneystr.h:NODISCARD bool ParseMoney(const std::string& str, CAmount& nRet);
  src/wallet/wallet.cpp:        if (!ParseMoney(gArgs.GetArg("-mintxfee", ""), n) || 0 == n) {
  src/wallet/wallet.cpp:        if (!ParseMoney(gArgs.GetArg("-fallbackfee", ""), nFeePerK)) {
  src/wallet/wallet.cpp:        if (!ParseMoney(gArgs.GetArg("-discardfee", ""), nFeePerK)) {
  src/wallet/wallet.cpp:        if (!ParseMoney(gArgs.GetArg("-paytxfee", ""), nFeePerK)) {
  src/wallet/wallet.cpp:        if (!ParseMoney(gArgs.GetArg("-maxtxfee", ""), nMaxFee)) {
  ```

ACKs for top commit:
  Empact:
    ACK https://github.com/bitcoin/bitcoin/pull/18270/commits/100213c5c29ebd7bd50aa885e54594ae10bf87a4
  sipa:
    ACK 100213c5c2
  theStack:
    ACK 100213c5c2

Tree-SHA512: cadfb1ac8276cf54736c3444705f2650e7a08023673aedc729fabe751ae80f6c490fc0945ee38dbfd02c95e4d9853d1e4c84f5d3c310f44eaf3585afec8a4c22
2020-03-26 20:25:55 -04:00
Ben Woosley
d056df033a
Replace std::to_string with locale-independent alternative 2020-03-14 12:23:01 -07:00
practicalswift
100213c5c2 util: Fail to parse space-only strings in ParseMoney(...) (instead of parsing as zero) 2020-03-12 14:15:10 +00:00
fanquake
97aadf98d0
Merge #16117: util: Replace boost sleep with std sleep
fae86c38bc util: Remove unused MilliSleep (MarcoFalke)
fa9af06d91 scripted-diff: Replace MilliSleep with UninterruptibleSleep (MarcoFalke)
fa4620be78 util: Add UnintrruptibleSleep (MarcoFalke)

Pull request description:

  We don't use the interruptible feature of boost's sleep anywhere, so replace it with the sleep in `std::thread`

ACKs for top commit:
  ajtowns:
    ACK fae86c38bc quick code review
  practicalswift:
    ACK fae86c38bc -- patch looks correct
  sipa:
    Concept and code review ACK fae86c38bc
  fanquake:
    ACK fae86c38bc - note that an instance of `DHAVE_WORKING_BOOST_SLEEP_FOR` was missed in the [linter](https://github.com/bitcoin/bitcoin/blob/master/test/lint/extended-lint-cppcheck.sh#L69), but that can be cleaned up later.

Tree-SHA512: 7c0f8eb197664b9f7d9fe6c472c77d384f11c797c913afc31de4b532e3b4fd9ea6dd174f92062ff9d1ec39b25e0900ca7c597435add87f0f2477d9557204848c
2020-03-06 15:41:00 +08:00
MarcoFalke
8888461f68
util: Fail to parse empty string in ParseMoney 2020-02-29 00:25:58 +07:00
MarcoFalke
fa9af06d91
scripted-diff: Replace MilliSleep with UninterruptibleSleep
This is safe because MilliSleep is never executed in a boost::thread,
the only type of thread that is interruptible.

* The RPC server uses std::thread
* The wallet is either executed in an RPC thread or the main thread
* bitcoin-cli, benchmarks and tests are only one thread (the main thread)

-BEGIN VERIFY SCRIPT-
sed -i --regexp-extended -e 's/MilliSleep\((\S+)\);/UninterruptibleSleep(std::chrono::milliseconds{\1});/g' $(git grep -l MilliSleep)
-END VERIFY SCRIPT-
2020-02-21 10:06:21 -08:00
Jeffrey Czyz
e193a84fb2
Refactor message hashing into a utility function
And add unit test for it.

The purpose of using a preamble or "magic" text as part of signing and
verifying a message was not given when the code was repeated in a few
locations. Make a test showing how it is used to prevent inadvertently
signing a transaction.
2020-02-14 10:45:41 +01:00
Vasil Dimov
f8f0d9893d
Deduplicate the message signing code
The logic of signing a message was duplicated in 3 places:

src/qt/signverifymessagedialog.cpp
  SignVerifyMessageDialog::on_signMessageButton_SM_clicked()

src/rpc/misc.cpp
  signmessagewithprivkey()

src/wallet/rpcwallet.cpp
  signmessage()

Move the logic into

src/util/message.cpp
  MessageSign()

and call it from all the 3 places.
2020-02-14 10:45:40 +01:00
Vasil Dimov
2ce3447eb1
Deduplicate the message verifying code
The logic of verifying a message was duplicated in 2 places:

src/qt/signverifymessagedialog.cpp
  SignVerifyMessageDialog::on_verifyMessageButton_VM_clicked()

src/rpc/misc.cpp
  verifymessage()

with the only difference being the result handling. Move the logic into
a dedicated

src/util/message.cpp
  MessageVerify()

which returns a set of result codes, call it from the 2 places and just
handle the results differently in the callers.
2020-02-14 10:45:40 +01:00