Commit graph

16013 commits

Author SHA1 Message Date
Hennadii Stepanov
11e3d5eb1d
util: Add AllowShortCaseLabelsOnASingleLine option 2019-10-14 13:24:54 +03:00
João Barbosa
a8f5026d6d gui: Fix start timer from non QThread 2019-10-14 10:53:33 +01:00
Ben Carman
9760293ce6
wallet: Fix for exported confirmation field in payment to self transactions 2019-10-13 11:10:36 -05:00
Ben Carman
b3b6b6f62f
gui: don't disable the sync overlay when wallet is disabled 2019-10-13 10:31:25 -05:00
practicalswift
7e50abcc29 tests: Add EvalScript(...) fuzzing harness 2019-10-12 16:42:21 +00:00
MarcoFalke
561a7d3047
Merge #16947: doc: Doxygen-friendly script/descriptor.h comments
15ac916642 doc: Doxygen-friendly descriptor.h comments (Jon Layton)

Pull request description:

  Closes #16942.

  - Make `Descriptor` overview subtext of `Interface for parsed descriptor objects.`
  - Conform to `@param[in, out] argname: Info` in parameter comments. Present in code: feb162d500/src/net_processing.cpp (L1001)
  - Remove redundant argument type, `in` vs `out` mentions
  - Removed unnecessary backticks around `IsSolvable()`, since Doxygen builds a link to the known function's docs
  - Add backticks to refer to `argname`s

  `descriptor.cpp` has more documentation, but Doxygen's output doesn't include anything inside unnamed namespaces for some reason. Tried to access them via searchbar.

Top commit has no ACKs.

Tree-SHA512: 587cc7596de46358a08b0321a7cf08a08785945715dbdce8945d837e1bee0664d1e11b1e47b7be85c4f35262f7ea173fb1f6202efcacc2023e2c6b0bd44133b3
2019-10-11 16:28:03 -04:00
Adam Jonas
66b29848c7 change wallet pointers to references in feebumper 2019-10-10 17:46:59 -04:00
practicalswift
bebb637472 tests: Add FuzzedDataProvider fuzzing helper from the Chromium project
Source: https://cs.chromium.org/chromium/src/third_party/libFuzzer/src/utils/FuzzedDataProvider.h?rcl=b9f51dc8c98065df0c8da13c051046f5bab833db
2019-10-10 21:13:33 +00:00
Jon Layton
7aad3b68e7 doc: Doxygen-friendly CuckooCache comments 2019-10-10 15:47:39 -04:00
John Newbery
04a2f326ec [validation] Fix REJECT message comments 2019-10-10 13:31:57 -04:00
John Newbery
e9d5a59e34 [validation] Remove REJECT code from CValidationState
We no longer send BIP 61 REJECT messages, so there's no need to set
a REJECT code in the CValidationState object.
2019-10-10 13:31:53 -04:00
MarcoFalke
befdef8aee
Merge #16887: Abstract out some of the descriptor Span-parsing helpers
bb36372b8f test: add unit tests for Span-parsing helpers (Sebastian Falbesoner)
5e69aeec3f Add documenting comments to spanparsing.h (Pieter Wuille)
230d43fdbc Abstract out some of the descriptor Span-parsing helpers (Pieter Wuille)

Pull request description:

  As suggested here: https://github.com/bitcoin/bitcoin/pull/16800#issuecomment-531605482.

  This moves the Span parsing functions out of the descriptor module, making them more easily usable for other parsers (in particular, in preparation for miniscript parsing).

ACKs for top commit:
  MarcoFalke:
    ACK bb36372b8f

Tree-SHA512: b5c5c11a9bc3f0a1c2c4cfa22755654ecfb8d4b69da0dc1fb9f04e1556dc0f6ffd87ad153600963279ac465d587d7971b53d240ced802d12693682411ac73deb
2019-10-10 12:33:03 -04:00
MarcoFalke
59f0687fea
Merge #16786: test: add unit test for wallet watch-only methods involving PubKeys
a57a1d42d5 test: add unit test for wallet watch-only methods involving PubKeys (Sebastian Falbesoner)

Pull request description:

  The motivation for this addition was to unit test the function `wallet.cpp:ExtractPubKey()` (see recent change in commit 798a589aff) which is however static and only indirectly available via the public methods `AddWatchOnly()`, `LoadWatchOnly()` and `RemoveWatchOnly()`. Since the first of those methods also stores the addresses to the disk, the second, simpler one was chosen which only operates in memory.

ACKs for top commit:
  Sjors:
    ACK a57a1d4
  instagibbs:
    reACK a57a1d42d5
  Sjors:
    re-ACK a57a1d4

Tree-SHA512: 92a242204ab533022cd848662997372c41815b1265d07b3d96305697f801db29a5ba5668337faf4bea702bec1451972529afd6665927fb142aaf91700a338b26
2019-10-10 12:12:54 -04:00
Adam Jonas
9be6666a4e typo and unneccessary parentheses 2019-10-10 12:10:15 -04:00
John Newbery
0053e16714 [logging] Don't log REJECT code when transaction is rejected
Remove the BIP61 REJECT code from error messages and logs when a
transaction is rejected.

BIP61 support was removed from Bitcoin Core in
fa25f43ac5. The REJECT codes will be
removed from the codebase entirely in the following commit.
2019-10-10 11:19:42 -04:00
John Newbery
a1a07cfe99 [validation] Fix peer punishment for bad blocks
Because the call to MaybePunishNode() in
PeerLogicValidation::BlockChecked() only previously happened if the
REJECT code was > 0 and < REJECT_INTERNAL, then there are cases were
MaybePunishNode() can get called where it wasn't previously:

- when AcceptBlockHeader() fails with CACHED_INVALID.
- when AcceptBlockHeader() fails with BLOCK_MISSING_PREV.

Note that BlockChecked() cannot fail with an 'internal' reject code. The
only internal reject code was REJECT_HIGHFEE, which was only set in
ATMP.

This change restores the behaviour pre-commit
5d08c9c579 which did punish nodes that
sent us CACHED_INVALID and BLOCK_MISSING_PREV blocks.
2019-10-10 11:17:01 -04:00
MarcoFalke
2a0164085b
Merge #16689: rpc: add missing fields to wallet rpc help output
f4c8953b00 Add missing fields in TransactionDescriptionString and others (Antoine Riard)
3530108491 MOVEONLY : move RPC wallets helpers to TransactionDescriptionString (Antoine Riard)

Pull request description:

  Knowledge of `walletconflicts` field existence is really nice when you're debugging conflicts. Was added in #3671 but never documented in RPC helps.

  Others were added after a quick skim, we may still have missing ones in wallet rpcs.

ACKs for top commit:
  MarcoFalke:
    re-ACK f4c8953b00 (only change is addressing my nits)
  kristapsk:
    ACK f4c8953b00

Tree-SHA512: 2bea4d8743399fb152f942df7454548b896b2ad5654fd4bf60253afec1a5387ef8797ced97776dc7ba4912291263c08abe7c2b608c6a28f9a0df67be4ebc4635
2019-10-10 10:04:36 -04:00
MarcoFalke
2352aec9fc
Merge #17076: tests: Add fuzzing harness for CheckTransaction(...), IsStandardTx(...) and other CTransaction related functions
5c2987636f tests: Remove TRANSACTION_DESERIALIZE (replaced by transaction fuzzer) (practicalswift)
0a573682f2 tests: Add fuzzing harness for CheckTransaction(...), IsStandardTx(...) and other CTransaction related functions (practicalswift)

Pull request description:

  Add fuzzing harness for `CheckTransaction(...)`, `IsStandardTx(...)` and other `CTransaction` related functions.

  **Testing this PR**

  Run:

  ```
  $ CC=clang CXX=clang++ ./configure --enable-fuzz --with-sanitizers=address,fuzzer,undefined
  $ make
  $ src/test/fuzz/transaction
  …
  # And to to quickly verify that the relevant code regions are triggered, that the
  # fuzzing throughput seems reasonable, etc.
  $ contrib/devtools/test_fuzzing_harnesses.sh '^transaction$'
  ```

  `test_fuzzing_harnesses.sh` can be found in PR #17000.

ACKs for top commit:
  MarcoFalke:
    ACK 5c2987636f

Tree-SHA512: 2f422df795c9dca13c98209ca9ce0fe5a0d4a71fb052fa33d599cc9c9f1d637fee27d58d02ed17b956b3e3d40931cbc1367fc99aa2e882473e54d95dee04d6b7
2019-10-10 09:18:34 -04:00
Wladimir J. van der Laan
b67ca4ee73
Merge #17085: init: Change fallback locale to C.UTF-8
facb9a1315 init: Change fallback locale to C.UTF-8 (Wladimir J. van der Laan)

Pull request description:

  Much of our code assumes file system UTF-8 support, and this is a more realistic guess for modern systems anyway than the default character set (which would be ASCII only). So change the assumed fallback locale (if no locale is defined by the user or OS) to `C.UTF-8`.

  related: https://github.com/bitcoin/bitcoin/issues/14948#issuecomment-488385462

ACKs for top commit:
  MarcoFalke:
    ACK facb9a1315

Tree-SHA512: 5075f9fe6791572d76ec38c58cd56f04ed8086c06a7d7f446d062dffc313c62466ba81f1a7d6b8c7e95791fcff82e4f76871c3534478fbfe5beb456dd8eea340
2019-10-10 13:09:50 +02:00
Jonas Schnelli
5cb1d938a1
Merge #15756: gui: Add shortcuts for tab tools
091747b46e gui: Add shortcuts for tab tools (João Barbosa)

Pull request description:

  This makes accessing the RPC console very fast/easy. It also improves accessibility.

  <img width="234" alt="Screenshot 2019-10-02 at 01 30 53" src="https://user-images.githubusercontent.com/3534524/66009867-50104300-e4b4-11e9-90b5-6b8dc961a8a1.png">

ACKs for top commit:
  jonasschnelli:
    Tested ACK 091747b46e - this is an improvment. Further solutions to solve the interference between the console and the shortcuts (if possible) can be done upstream (Qt) or with another PR.

Tree-SHA512: 6b8bc07e8a3a75e53c05f0fdb73458d75ef025f950569e885e655de53fdac8b91dcabfb1c6e643b1d23065420fa2701847c00cc1718bc188778640aefb5bcbd8
2019-10-10 09:03:44 +02:00
Jonas Schnelli
b265ffe323
Merge #15023: GUI: Restore RPC Console to non-wallet tray icon menu
f33efa8ec5 GUI: Restore RPC Console to non-wallet tray icon menu (Luke Dashjr)

Pull request description:

  #14383 moved the debug window's menu position, to make it conditional on wallet mode. The rationale given was to match the behaviour of the 'Help' menu.

  #14573 replaced the 'Help' menu's conditional debug window with an unconditional list of items in the new 'Window' menu.

  This PR reverts the no-longer-applicable part of #14383, putting the debug window back on the tray menu unconditionally, and in the position it previously had.

ACKs for top commit:
  jonasschnelli:
    Tested ACK f33efa8ec5 - the debug window is also accessible from the menu (though directly the subpages which counts IMO).

Tree-SHA512: c04a588fed37a8c31cb413baaa346e3c1c18724f9b40d64b8528c517f65290930d577bccf0a794180e968e84d3c52e9fa3fdc8a40bbc5fe3418eaddd73481271
2019-10-10 09:02:34 +02:00
Sebastian Falbesoner
bb36372b8f test: add unit tests for Span-parsing helpers
tests the following four functions:
    - Const() [parse constant]
    - Func()  [parse function]
    - Expr()  [parse expression]
    - Split() [split up a string]
2019-10-09 18:11:14 -07:00
fanquake
a2ae766a61
Merge #15098: qt: Show addresses for "SendToSelf" transactions
11fdfcf7f9 Show addresses for "SendToSelf" transactions (Hennadii Stepanov)

Pull request description:

  Fix #11464
  Fix #12688
  Ref: #11471 by jonasschnelli

  Note: change addresses are not recognized (ref: https://github.com/bitcoin/bitcoin/pull/11471#discussion_r180547041)

  Result:
  ![screenshot from 2019-01-04 09-06-12](https://user-images.githubusercontent.com/32963518/50677356-19c79500-1002-11e9-986c-999c366e4b2a.png)

ACKs for top commit:
  jonasschnelli:
    Tested ACK 11fdfcf7f9
  fanquake:
    ACK 11fdfcf7f9 - did the bare minimum testing.

Tree-SHA512: 2678a2fdf017c376750c73fdc751b7838b0d3a970ba02e9032e4c5824494362672036c3ebf87b425aefdfe197fb952b70e4b7b6011077abb39a8bfc1ae14dfd2
2019-10-09 14:35:29 -04:00
Antoine Riard
f4c8953b00 Add missing fields in TransactionDescriptionString and others
Fields involvesWatchonly, generated, walletconflicts were missing
in result description of listtransactions, listsinceblock,
gettransaction

Align getttransaction fields which were odd compare to other rpc
helpers
2019-10-09 14:26:50 -04:00
Antoine Riard
3530108491 MOVEONLY : move RPC wallets helpers to TransactionDescriptionString 2019-10-09 14:22:02 -04:00
MarcoFalke
fae43a97ca
test: Seed test RNG context for each test case, print seed 2019-10-09 11:20:12 -04:00
practicalswift
5c2987636f tests: Remove TRANSACTION_DESERIALIZE (replaced by transaction fuzzer) 2019-10-09 13:53:13 +00:00
practicalswift
0a573682f2 tests: Add fuzzing harness for CheckTransaction(...), IsStandardTx(...) and other CTransaction related functions 2019-10-09 13:53:13 +00:00
fanquake
b1de33d29a
Merge #16821: Fix bug where duplicate PSBT keys are accepted
9743432034 Fix bug where duplicate PSBT keys are accepted (John L. Jegutanis)

Pull request description:

  As per the BIP 174 spec a PSBT key cannot be duplicated,
  however the current code accepts key duplication.
  The PSBT key/value entries can be duplicated when the value
  is `empty()` or `IsNull()` for `CScript` or `CTxOut` respectively
  and if those key/value entries are serialized before the non-empty ones.

  For example, the following PSBT, included in the test vectors,
  contains a duplicate field:

  ```
  // magic
  70736274ff

  // global tx
  //// key
  0100
  //// value
  2a02000000000140420f000000000017a9146e91b72d5593e7d4391e2ff44e91e985c31641f08700000000
  //// separator
  00

  // no inputs

  // outputs
  //// key PSBT_OUT_WITNESSSCRIPT
  0101
  //// value (empty script)
  00
  //// key PSBT_OUT_WITNESSSCRIPT (same as the above)
  0101
  //// value (an OP_RETURN script)
  016a
  //// separator
  00
  ```

ACKs for top commit:
  achow101:
    ACK 9743432034
  instagibbs:
    code review ACK 9743432034

Tree-SHA512: 34f4b34c8e6561c6a6ab745cdd319f6687eac6f7cecc735c94035eeca8c5157e17a27f2ae853dbaa6634fcd5a8f4e1c6cc13d1ebd7e563459665d72bb147cc1e
2019-10-09 09:18:27 -04:00
Wladimir J. van der Laan
facb9a1315 init: Change fallback locale to C.UTF-8
Much of our code assumes UTF-8 support, and this is a more realistic
guess for modern systems anyway than the default character set (which
would be ASCII only). So change the assumed fallback locale (if no
locale is defined by the user or OS) to `C.UTF-8`.
2019-10-09 14:53:18 +02:00
Daki Carnhof
4de0bde7bc build: Fix #include sys/poll.h to just poll.h (without sys/)
http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html
http://man7.org/linux/man-pages/man2/poll.2.html
2019-10-09 13:30:36 +02:00
Wladimir J. van der Laan
c08bf2b574
Merge #15437: p2p: Remove BIP61 reject messages
fa25f43ac5 p2p: Remove BIP61 reject messages (MarcoFalke)

Pull request description:

  Reject messages (BIP 61) appear in the following settings:

  * Parsing of reject messages (in case `-debug=net` is set, off by default). This has only been used for a single `LogPrint` call for several releases now. Such logging is completely meaningless to us and should thus be removed.

  * The sending of reject messages (in case `-enablebip61` is set, off by default). This can be used to debug a node that is under our control. Instead of hacking this debugging into the p2p protocol, it could be more easily achieved by parsing the debug log. (Use `-printtoconsole` to have it as stream, or read from the `debug.log` file like our python function `assert_debug_log` in the test framework does)

  Having to maintain all of this logic and code to accommodate debugging, which can be achieved by other means a lot easier, is a burden. It makes review on net processing changes a lot harder, since the reject message logic has to be carried around without introducing any errors or DOS vectors.

ACKs for top commit:
  jnewbery:
    utACK fa25f43ac5
  laanwj:
    I'm still not 100% convinced that I like getting rid of BIP61 conceptually, but apparently everyone wants it, code review ACK fa25f43ac5.
  ryanofsky:
    Code review ACK fa25f43ac5

Tree-SHA512: daf55254202925e56be3d6cfb3c1c804e7a82cecb1dd1e5bd7b472bae989fd68ac4f21ec53fc46751353056fd645f7f877bebcb0b40920257991423a3d99e0be
2019-10-09 11:51:58 +02:00
fanquake
520d140e6e
Merge #17056: descriptors: Introduce sortedmulti descriptor
4bb660be90 Add release note (Andrew Chow)
ed96b295d7 Update descriptors.md to include sortedmulti (Andrew Chow)
80be78ea75 Test sortedmulti descriptor using BIP 67 tests (Andrew Chow)
6f588fd227 Add sortedmulti descriptor and unit tests (Andrew Chow)

Pull request description:

  Adds a `sortedmulti()` descriptor as mentioned in https://github.com/bitcoin/bitcoin/pull/17023#issuecomment-537596416.

  `sortedmulti()` works in the same way as `multi` does but sorts the pubkeys in the resulting scripts in lexicographic order as described in [BIP67](https://github.com/bitcoin/bips/blob/master/bip-0067.mediawiki). Note that this does not add support for BIP67 nor is BIP67 fully supported by this descriptor (which is why it is not named `multi67()`) as it does not require compressed pubkeys.

  Tests from BIP67 were added and documentation was updated.

ACKs for top commit:
  instagibbs:
    re-ACK 4bb660be90
  Sjors:
    re-ACK 4bb660be90

Tree-SHA512: 93b21112a74ebe0bf316d8f3e0291f69fd975cf0a29332f9728e7b880cad312b8b14007e86adcd7899f117b9303cbcf4cb35f3bb2f2f648d1a446f83f75a70a5
2019-10-08 14:26:26 -04:00
Andrew Chow
6f588fd227 Add sortedmulti descriptor and unit tests 2019-10-08 13:56:56 -04:00
MarcoFalke
facec1c643
wallet: Avoid showing GUI popups on RPC errors 2019-10-08 13:02:14 -04:00
Wladimir J. van der Laan
e173d587e1
Merge #17068: qt: Always generate bitcoinstrings.cpp on make translate
c640ca24f9 Always generate `bitcoinstrings.cpp` on `make translate` (Franck Royer)

Pull request description:

  Resolves #16891.

  `bitcoinstrings.cpp` is to be generated at release time. Hence,
  it should not depend on whether the source files are younger as the
  releaser may proceed from a fresh checkout.

  More information on the investigation in the issue.

ACKs for top commit:
  jonasschnelli:
    Tested ACK c640ca24f9 - Tested master + this on macOS 10.14. With this PR, it always "runs" `GEN      qt/bitcoinstrings.cpp` and `GEN      translate`.

Tree-SHA512: f799fdc3ad16a2a6a59704bc2c50f5179e6a7e064d8f43354592f11857cc901cac99b2b90f3319d25d49c9d78378b8d119cc5f59b48ea7f1008f33dd26700877
2019-10-08 14:08:08 +02:00
Wladimir J. van der Laan
9f8cd0ac89
Merge #17059: util: Simplify path argument for CBlockTreeDB ctor
c2bb3919a8 util: Simplify path argument for CBlockTreeDB ctor (Hennadii Stepanov)

Pull request description:

  This PR:
  - simplifies path argument (`datadir/blocks/index`) for `CBlockTreeDB`  constructor
  - does not change behavior as `GetBlocksDir()` with unset "-blocksdir" returns the same path
  - improves code readability

ACKs for top commit:
  MarcoFalke:
    ACK c2bb3919a8
  laanwj:
    ACK c2bb3919a8
  promag:
    ACK c2bb3919a8.

Tree-SHA512: 646a0a3a31e2f419b05f696cbdfb7d8987f1d89ec0797b72464ae05680fd5f95f6469be0ea5b56f772434c49d48504cd9cf9760c05d4054d11349d502e157ee2
2019-10-08 11:47:24 +02:00
Wladimir J. van der Laan
2f174498d6
Merge #17073: move-only: PASTE macros to util/macros.h
0d86f4d3da refactor: consolidate PASTE macros (James O'Beirne)

Pull request description:

  Really dumb move-only stolen from #16805. Some of my pull requests also depend on this, so I split it up to not depend on #16805.

ACKs for top commit:
  practicalswift:
    ACK 0d86f4d3da -- diff looks correct
  hebasto:
    ACK 0d86f4d3da, I have reviewed the code and it looks OK, I agree it can be merged.
  promag:
    ACK 0d86f4d3da.

Tree-SHA512: 19208a8cbf83034b1ef25138d8f08d8f32ace7775f654b1597fc4599dd576f0758145f592f161cfdcaaa29d4907ac9aa5553f6f524e2b960205c760605a05901
2019-10-08 11:25:51 +02:00
John L. Jegutanis
9743432034 Fix bug where duplicate PSBT keys are accepted
As per the BIP 174 spec a PSBT key cannot be duplicated,
however the current code accepts key duplication.
The PSBT key/value entries can be duplicated when the value
is `empty()` or `IsNull()` for `CScript` or `CTxOut` respectively
and if those key/value entries are serialized before the non-empty ones.

For example, the following PSBT, included in the test vectors,
contains a duplicate field:

```
// magic
70736274ff

// global tx
//// key
0100
//// value
2a02000000000140420f000000000017a9146e91b72d5593e7d4391e2ff44e91e985c31641f08700000000
//// separator
00

// no inputs

// outputs
//// key PSBT_OUT_WITNESSSCRIPT
0101
//// value (empty script)
00
//// key PSBT_OUT_WITNESSSCRIPT (same as the above)
0101
//// value (an OP_RETURN script)
016a
//// separator
00
```
2019-10-08 01:45:36 +03:00
practicalswift
ffa2221256 tests: Pass fuzzing inputs as constant references 2019-10-07 08:48:35 +00:00
Franck Royer
c640ca24f9 Always generate bitcoinstrings.cpp on make translate
`bitcoinstrings.cpp` is to be generated at release time. Hence,
it should not depend on whether the source files are younger as the
releaser may proceed from a fresh checkout.
2019-10-07 15:38:07 +11:00
Hennadii Stepanov
c2bb3919a8
util: Simplify path argument for CBlockTreeDB ctor
This commit does not change behavior as GetBlocksDir() with unset 
"-blocksdir" returns the same path.
2019-10-05 09:38:56 +03:00
fanquake
94d6a18f23
Merge #16507: feefilter: Compute the absolute fee rather than stored rate
eb7b781659 modify p2p_feefilter test to catch rounding error (Gregory Sanders)
6a51f79517 Disallow implicit conversion for CFeeRate constructor (Gregory Sanders)
8e59af55aa feefilter: Compute the absolute fee rather than stored rate to match mempool acceptance logic (Gregory Sanders)

Pull request description:

  This means we will use the rounding-down behavior in `GetFee` to match both mempool acceptance and wallet logic, with minimal changes.

  Fixes https://github.com/bitcoin/bitcoin/issues/16499

  Replacement PR for https://github.com/bitcoin/bitcoin/pull/16500

ACKs for top commit:
  ajtowns:
    ACK eb7b781659 code review only
  naumenkogs:
    utACK eb7b781659
  achow101:
    re ACK eb7b781659
  promag:
    ACK eb7b781659.

Tree-SHA512: 484a11c8f0e825f0c983b1f7e71cf6252b1bba6858194abfe4c088da3bae8a418ec539ef6c4181bf30940e277a95c08d493595d59dfcc6ddf77c65b05563dd7e
2019-10-04 13:46:45 -04:00
fanquake
8ddc303931
Merge #17031: gui: Prevent processing duplicate payment requests
3f89e1eb23 Prevent processing duplicate payment requests (João Barbosa)

Pull request description:

  Considering the following from Qt [src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm#L267](13e0a36626/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm (L267))

  ```cpp
  - (void)application:(NSApplication *)sender openFiles:(NSArray *)filenames
  {
      Q_UNUSED(filenames);
      Q_UNUSED(sender);

      for (NSString *fileName in filenames) {
          QString qtFileName = QString::fromNSString(fileName);
          if (inLaunch) {
              // We need to be careful because Cocoa will be nice enough to take
              // command line arguments and send them to us as events. Given the history
              // of Qt Applications, this will result in behavior people don't want, as
              // they might be doing the opening themselves with the command line parsing.
              if (qApp->arguments().contains(qtFileName))
                  continue;
          }
          QWindowSystemInterface::handleFileOpenEvent(qtFileName);
      }
  ```

  And that a2714a5c69 was merged, now Qt isn't able to filter out the above notifications, and then a [QFileOpenEvent](https://doc.qt.io/qt-5/qfileopenevent.html) event is delivered to `PaymentServer::eventFilter`, which in turn (re)adds the payment request.

  This change fixes #17025, but makes sense regardless of the issue.

ACKs for top commit:
  laanwj:
    Nah, this seems fine, utACK 3f89e1eb23
  Sjors:
    ACK 3f89e1e on macOS 10.14.6
  achow101:
    Code review ACK 3f89e1eb23

Tree-SHA512: dd1e0c73fd84953418173ca71f6f5a67ad74a5dc7e3b1d54915ef0545f513df6a24f27242a77bb094e2833a478e2f3bf30ecd50251f3c55b65e780097cb8ab4d
2019-10-04 06:19:08 -04:00
Wladimir J. van der Laan
4715037796
Merge #17038: Don't rename main thread at process level
07e4bdba3b Don't rename main thread at process level (Wladimir J. van der Laan)

Pull request description:

  Set only the internal name for the main threads.

  Fixes #17036 for both `bitcoind` and `bitcoin-qt`.

  After this, e.g. `killall` works again for either.

ACKs for top commit:
  promag:
    Tested ACK 07e4bdba3b, `killall bitcoind` and `killall bitcoin-qt` now just works!
  jonatack:
    ACK 07e4bdba3b `killall bitcoind` shuts down bitcoind mainnet/testnet/regtest, `killall bitcoin-qt` shuts down `./src/qt/bitcoin-qt`, tests pass, very light code review. Good idea to add the `@note` warning. Thanks!

Tree-SHA512: 8f310ae646c83a02de7cc6869aa9aca1d53613d8fb762d05e3dfa52e17ca82abeb99044564cf7ba45b3c4b320e65bf8315d0e8834a9e696f097be5af638c6fd9
2019-10-03 20:51:00 +02:00
Gregory Sanders
6a51f79517 Disallow implicit conversion for CFeeRate constructor 2019-10-03 14:03:27 -04:00
Gregory Sanders
8e59af55aa feefilter: Compute the absolute fee rather than stored rate to match mempool acceptance logic 2019-10-03 14:03:27 -04:00
Wladimir J. van der Laan
07e4bdba3b Don't rename main thread at process level
Set only the internal name.

Fixes #17036 for both `bitcoind` and `bitcoin-qt`.
2019-10-03 06:58:47 +02:00
João Barbosa
3f89e1eb23 Prevent processing duplicate payment requests 2019-10-02 21:55:52 +01:00
MarcoFalke
a689c11907
Merge #16524: Wallet: Disable -fallbackfee by default
ea4cc3a7b3 Truly decouple wallet from chainparams for -fallbackfee (Jorge Timón)

Pull request description:

  Before it was 0 by default for main and 20000 for test and regtest.
  Now it is 0 by default for all chains, thus there's no need to call Params().

  Also now the default for main is properly documented.

  Suggestion for release notes:

  -fallbackfee was 0 (disabled) by default for the main chain, but 20000 by default for the test chains. Now it is 0 by default for all chains. Testnet and regtest users will have to add fallbackfee=20000 to their configuration if they weren't setting it and they want it to keep working like before.

  Should I propose them to the wiki for the release notes or only after merge?

  For more context, see https://github.com/bitcoin/bitcoin/pull/16402#issuecomment-515701042

ACKs for top commit:
  MarcoFalke:
    ACK ea4cc3a7b3

Tree-SHA512: fdfaba5d813da4221e405e0988bef44f3856d10f897a94f9614386d14b7716f4326ab8a6646e26d41ef3f4fa61b936191e216b1b605e9ab0520b0657fc162e6c
2019-10-02 13:42:57 -04:00