Commit graph

12309 commits

Author SHA1 Message Date
Brannon King
8932d90a9e rolled version, added info to chaintips 2019-09-27 09:26:26 -06:00
Brannon King
96fdb05689 added helper method, enabled signing 2019-09-26 12:29:40 -06:00
Brannon King
9149e371ed fixed fee calc issue, removed segwit enable fallback 2019-09-25 13:42:34 -06:00
Anthony Fieroni
12ab16f50e Show bid and sequence as optional parameters
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-09-19 10:59:15 -06:00
Anthony Fieroni
c185b49ede Show claimtrie help in cli rpc
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-09-19 10:59:15 -06:00
Brannon King
d05eee35e8 updated go-live heights 2019-09-18 13:53:07 -06:00
lbrynaut
4df4136c5d Fix unit tests after recent breaks. 2019-09-17 09:46:44 -06:00
Brannon King
b7cdd9f2a0 added staked totals to getwalletinfo 2019-09-16 16:04:57 -06:00
Brannon King
ffe828b1d9 rolled version, fix txindex_test, other tweaks 2019-09-16 14:54:05 -06:00
Brannon King
71bd612c4a Fix broken test on previous checkin 2019-09-16 14:49:35 -06:00
Brannon King
f176db058e change rpc enablement mechanism 2019-09-13 16:18:36 -06:00
Brannon King
b434864f18 initial commit of metadata on supports 2019-09-13 16:18:36 -06:00
Brannon King
4da4ab1995 restored nonstandard output on getrawtransaction
attempting to make index pointer problems more obvious


reverted strip in Solver


synced subtype
2019-09-13 16:16:08 -06:00
Brannon King
920a9b09dc proposed fix for issue 242 2019-09-13 16:16:08 -06:00
Brannon King
8b98a9a4e9 Organize unit tests by type
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>

moved a few more tests out
2019-09-11 09:21:45 -06:00
Anthony Fieroni
476eae3e93 Match network id to regtest
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-09-10 11:54:04 -06:00
Anthony Fieroni
6575fb9534 Show correct script ops in asm
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-09-10 10:02:16 -06:00
Brannon King
1583082acc added support for tips in RPC, minor cleanup 2019-09-06 14:03:38 -06:00
Anthony Fieroni
f71d6a4263 Introduce pending amount, the value when claim and its supports got valid
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-09-06 14:03:38 -06:00
Anthony Fieroni
d2b78a7fc3 Make optional claimid and amount in supportclaim
Return destination claim address as well

Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-09-06 14:03:38 -06:00
Anthony Fieroni
a98288aa80 Logic fixes, unit test
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-09-06 14:03:38 -06:00
Anthony Fieroni
3a0b4232a5 Add bid, sequence like rpc methods
Reuse a bunch of rpc help texts
2019-09-06 14:03:38 -06:00
Anthony Fieroni
5bdbc9e0d6 Split help and rpc methods
Use constants for field names

Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-09-06 14:03:38 -06:00
Anthony Fieroni
9d4ef899a6 Unify claimtrie rpc methods
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-09-06 14:03:38 -06:00
Brannon King
d0e8374636 more thoroughly tested tx signing 2019-09-05 14:17:22 -06:00
Brannon King
d2b26da3e8 added parameter for claim db cache size 2019-08-30 15:19:09 -06:00
Brannon King
59faea9815 added unit test for signing claims 2019-08-30 13:54:19 -06:00
Brannon King
ce6be620a5 setting go-live heights 2019-08-30 13:52:32 -06:00
Anthony Fieroni
580f6e20eb Implement binary tree hash algorithm
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-08-30 13:52:32 -06:00
Brannon King
7d93edf776 fix osx unit test failure 2019-08-30 09:22:58 -06:00
Brannon King
b3c5b1e88d simplified claim stripping, removed TX_CLAIM 2019-08-29 14:49:54 -06:00
Brannon King
a84c196916 reduced max open files on levelDB 2019-08-29 08:57:45 -06:00
Brannon King
b52f47f273 removed shared_ptr on TData, set minWork 2019-08-29 08:57:45 -06:00
Anthony Fieroni
e9d37a8c81 Trying to minimize disk reads / writes
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-08-29 08:57:45 -06:00
Brannon King
d96253cd40 attempted optimization of dbwrapper
it will only work for single-threaded access
2019-08-29 08:57:45 -06:00
Brannon King
4a5d310fd3 separate claim from children storage 2019-08-29 08:57:45 -06:00
Brannon King
c6e267e970 optimized a little 2019-08-29 08:57:45 -06:00
Brannon King
7b5ae24bea first pass at not loading full claimtrie into RAM
tweaks
2019-08-29 08:57:45 -06:00
lbrynaut
92037d786a Detect "claim" type transactions.
Add code to enable a hardfork into witness support, in addition to
possible BIP9 fiddling.
Fix a bug in abandonclaim and abandonsupport that burns coins on
abandon, rather than sending to the intended destination.
2019-08-28 13:35:04 -06:00
Brannon King
fc0da99894 updated to support using bech32 addresses with claim ops 2019-08-28 13:35:04 -06:00
Brannon King
20e96d1233 fix unit test crash on OSX
pulled in some fixes from v18
2019-08-08 10:11:09 -06:00
Brannon King
43214bc6d2 removed superfluous fRequireTakeoverHeights 2019-07-29 10:25:41 -06:00
Brannon King
328ee12e8b made a new "claims" logging category (off by default) 2019-07-29 09:47:33 -06:00
Brannon King
6259378466 renamed some of the cache fields 2019-07-29 09:23:56 -06:00
Anthony Fieroni
e5c8b6b8ff Better use copies on iterate claim and support re-add
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-07-29 09:23:56 -06:00
Anthony Fieroni
c02b04f120 A bit more cleanup
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-07-29 09:23:56 -06:00
Anthony Fieroni
216cc51825 Code refactor
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-07-29 09:23:56 -06:00
Brannon King
b1aa5e04e1 revert regtest expiration change 2019-07-22 14:27:24 -06:00
Anthony Fieroni
0947307e14 Fix consensus
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-07-22 14:27:24 -06:00
Anthony Fieroni
966e7386d9 Fix expiration fork usage
Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2019-07-22 14:27:24 -06:00
Brannon King
05381f2f5b stop overwriting releases when tags are rebased
and stop putting timestamps in the zips


reverted csv, segwit numbers


apparently the overwrite is necessary


going to do releases manually
2019-07-22 13:37:11 -06:00
Brannon King
141f1400dc fix crash on cli help
fix bech32 prefix


bumped version


improve trie read RAM use, fix a few compiler warnings


open segwit window until Jan 2020


work around Windows ICU build issue


upped the soft fork thresh length to a week


open testnet soft forks window


clarifying segwit to be manually enabled


same for testnet
2019-07-19 12:21:07 -06:00
Brannon King
90afa72147 eliminated fuzzer test on osx 2019-07-02 08:44:33 -06:00
Brannon King
3d9e8f595f changed unit test to deterministic rand 2019-07-02 00:15:27 -06:00
Brannon King
09e2ba2d68 post-merge fixes 2019-07-01 14:44:28 -06:00
lbrynaut
c18f0ed8ea Add a test for locktime transactions. 2019-07-01 14:44:28 -06:00
Brannon King
9a67b514c9 flattening prefix trie work
put getclaimsintrie back as deprecated


added test for adding a lot of data to the claimtrie


updated unit test to dodge expiration fork
2019-07-01 14:44:28 -06:00
Brannon King
8d955fdd22 added a test for putting a lot of data into the claimtrie
updated to dodge expiration fork
2019-07-01 14:44:28 -06:00
Brannon King
24269e177f support coinbasetxn capability in getblocktemplate 2019-07-01 14:44:28 -06:00
Brannon King
c751b27e54 upped the default validation period 2019-07-01 14:44:28 -06:00
Brannon King
f2462c74b3 restored the current "depends" and friends
fix windows test run


unit test round 2


attempting to fix ccache use on darwin


made ccache optional, no longer pulls clang on darwin build


fixing darwin build from Dockerfile


fixed missing nproc on OSX


updated readme to include regtest example, build examples


fix QT unit tests


made -j get passed down, added build.sh
2019-07-01 14:44:28 -06:00
Brannon King
4a4c091c55 fixed ancestors not all in claim trie on packageFees condition 2019-07-01 14:44:28 -06:00
Brannon King
7eddd19521 made cache match legacy_master, removed my bad assert in undo 2019-07-01 14:44:28 -06:00
Brannon King
9cb4064adb added claimtrie field back to getblocktemplate
I also included a test to ensure that we don't forget it next time
2019-07-01 14:44:28 -06:00
Brannon King
5a393f5b14 Undo compatibility (#281)
* added test for claimname RPC
2019-07-01 14:44:28 -06:00
lbrynaut
ffe68d634f Fix a bug that treats all claims as our own wallet txs. 2019-07-01 14:44:28 -06:00
Brannon King
e560834489 allow rest/block/height.json
changes from review, added integration test
2019-07-01 14:44:28 -06:00
Brannon King
141e583cce code reuse between miner & validator
originally from BvbFan
2019-07-01 14:44:28 -06:00
Brannon King
c7cabf0e96 pulled in a few minor keepers from the other rebase branch 2019-07-01 14:43:59 -06:00
Brannon King
21f065aff9 fixed small claim names coming out as numeric 2019-07-01 14:43:59 -06:00
Brannon King
40a3668c97 fixed slow-running unit tests 2019-07-01 14:43:59 -06:00
lbrynaut
a08967a572 Rebase lbry on to Bitcoin 0.17.
This contains significant rebase / merge / testing work by Naut
<lbrynaut@protonmail.com>, Anthony Fieroni <bvbfan@abv.bg> and Brannon
King <countprimes@gmail.com>.
2019-07-01 14:43:59 -06:00
Pieter Wuille
b5a4abeca2
Add test for GCC bug 90348
Github-Pull: #15985
Rebased-From: 58e291cfad
2019-06-07 10:21:26 +02:00
João Barbosa
2e9e904a5d wallet: Close wallet env lock file
Close .walletlock file when a BerkeleyEnvironment is deleted.

Github-Pull: #15297
Rebased-From: 2f8b8f4
2019-03-12 23:24:11 +00:00
João Barbosa
22cdb6cf59 wallet: Close dbenv error file db.log
The error file db.log is opened by BerkeleyEnvironment instance and
should be closed after dbenv is closed.

Github-Pull: #15297
Rebased-From: 8602a1e
2019-03-12 23:24:11 +00:00
Pierre Rochard
f20513bd71 Tests: add unit tests for GetWalletEnv
Github-Pull: #11911
Rebased-From: 88b1d95
2019-03-12 23:25:49 +00:00
Pierre Rochard
85c6263ddb Trivial: add doxygen-compatible comments relating to BerkeleyEnvironment
Github-Pull: #11911
Rebased-From: 14bc2a1
2019-03-12 23:25:36 +00:00
Russell Yanofsky
f22d02f537 Free BerkeleyEnvironment instances when not in use
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 Matt Corallo <git@bluematt.me> 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.

Github-Pull: #11911
Rebased-From: f1f4bb7
2019-03-12 23:24:11 +00:00
Chun Kuan Lee
0a9af2d4cb wallet: Create IsDatabaseLoaded function
Github-Pull: #14552
Rebased-From: 5912031
2019-03-11 21:54:44 +00:00
Russell Yanofsky
7751ea37b6 Refactor: Move m_db pointers into BerkeleyDatabase
This is a refactoring change that doesn't affect behavior. The motivation
behind the change is give BerkeleyEnvironment objects access to
BerkeleyDatabase objects so it will be possible to simplify the duplicate
wallet check and more reliably avoid opening the same databases twice.

Github-Pull: #14552
Rebased-From: c456fbd
2019-03-11 21:54:44 +00:00
Chun Kuan Lee
caf1146b13 wallet: Add trailing wallet.dat when detecting duplicate wallet if it's a directory.
Github-Pull: #14552
Rebased-From: 15c93f0
2019-03-11 21:54:44 +00:00
Chun Kuan Lee
8965b6ab47 wallet: Fix duplicate fileid
Github-Pull: #14320
Rebased-From: 2d796fa
2019-03-11 21:54:44 +00:00
João Barbosa
16e5759455 wallet: Refactor to use WalletLocation
Github-Pull: #14350
Rebased-From: 65f3672
2019-03-11 21:54:44 +00:00
João Barbosa
21693ff0b7 wallet: Add WalletLocation utility class
Github-Pull: #14350
Rebased-From: 01a4c09
2019-03-11 21:54:44 +00:00
Andrew Chow
1c98a758d0 No longer shutdown after encrypting the wallet
Since the database environment is flushed, closed, and reopened during
EncryptWallet, there is no need to shut down the software anymore.

Github-Pull: #12493
Rebased-From: c1dde3a
2019-03-11 13:20:41 +00:00
Andrew Chow
435df68c62 Move BerkeleyEnvironment deletion from internal method to callsite
Instead of having the object destroy itself, having the caller
destroy it.

Github-Pull: #12493
Rebased-From: a769461
2019-03-11 13:20:22 +00:00
Andrew Chow
048fda2a66 After encrypting the wallet, reload the database environment
Calls ReloadDbEnv after encrypting the wallet so that the database
environment is flushed, closed, and reopened to prevent unencrypted
keys from being saved on disk.

Github-Pull: #12493
Rebased-From: d7637c5
2019-03-11 13:19:56 +00:00
Andrew Chow
f455979eb1 Add function to close all Db's and reload the databae environment
Adds a ReloadDbEnv function to BerkeleyEnvironment in order to close all Db
instances, closes the environment, resets it, and then reopens
the BerkeleyEnvironment.

Also adds a ReloadDbEnv function to BerkeleyDatabase that calls
BerkeleyEnvironment's ReloadDbEnv.

Github-Pull: #12493
Rebased-From: 5d296ac
2019-03-11 13:19:05 +00:00
Wladimir J. van der Laan
30db5cc641
Merge #15002: 0.17: Backport #14941
0cd9ad208c rpc: Make unloadwallet wait for complete wallet unload (João Barbosa)

Pull request description:

  #14941 makes `unloadwallet` a synchronous call meaning that it waits for the wallet to fully unload/delete.

Tree-SHA512: df7a490306ee2cca399129a4ebfba4b19b65fe67d1657ec3518352fe453327cb347010f94cf7fe4a60aeb51c928cb9ad6b24c40123fd0b9dc0aab5920a59f48d
2019-01-31 15:35:30 +01:00
Gregory Sanders
c42f4177ce
Remove errant past from walletcreatefundedpsbt for nLocktime replaceability
Github-Pull: #15213
Rebased-From: 85f0ca95f3
2019-01-25 11:41:22 +08:00
João Barbosa
0cd9ad208c rpc: Make unloadwallet wait for complete wallet unload
Github-Pull: #14941
Rebased-From: c37851d
2019-01-16 00:33:32 +00:00
Ben Carman
59dd855d2d
gui: Fix for Incorrect application name when passing -regtest
Github-Pull: #15085
Rebased-From: cc341adbbb
2019-01-05 10:13:53 -06:00
Wladimir J. van der Laan
5ff7b372cd
Merge #15065: 0.17: GUI Backports #14123 #14133 #14383 #14597
27beb83222 qt: All tray menu actions call showNormalIfMinimized (João Barbosa)
c470bbd19d qt: Use GUIUtil::bringToFront where possible (João Barbosa)
ac73c7d433 qt: Add GUIUtil::bringToFront (João Barbosa)
0c2fb87dc1 Remove obj_c for macOS Dock icon menu (Hennadii Stepanov)
90347141bd Use Qt signal for macOS Dock icon click event (Hennadii Stepanov)
4d4bc37df9 Remove obj_c for macOS Dock icon setting (Hennadii Stepanov)
d2ed162ce0 Clean systray icon menu for -disablewallet mode (Hennadii Stepanov)
298dc15686 gui: Favor macOS show / hide action in dock menu (João Barbosa)

Pull request description:

  Backport #14123 #14133 #14383 and #14597 to 0.17 branch to fix https://github.com/bitcoin/bitcoin/issues/13606#issuecomment-449846983.

Tree-SHA512: 543c80e7e2130870e801e0c9a69b06b9eea27c288478fc5dddeb662f7f3ec5b56b30916e5a9a629fced3fffcb8be77e2cd155e75cfd0a4392299add9730840f4
2019-01-03 09:54:44 +01:00
João Barbosa
27beb83222 qt: All tray menu actions call showNormalIfMinimized
Github-Pull: #14123
Rebased-From: 0a656f85a9
2018-12-30 11:23:39 +00:00
João Barbosa
c470bbd19d qt: Use GUIUtil::bringToFront where possible
Github-Pull: #14123
Rebased-From: 6fc21aca6d
2018-12-30 11:23:16 +00:00
João Barbosa
ac73c7d433 qt: Add GUIUtil::bringToFront
Github-Pull: #14123
Rebased-From: 5796671e1d
2018-12-30 11:22:20 +00:00
Hennadii Stepanov
0c2fb87dc1 Remove obj_c for macOS Dock icon menu
Qt `setAsDockMenu()` does this work.

Github-Pull: #14597
Rebased-From: 6b1d2972bf
2018-12-30 11:21:54 +00:00
Hennadii Stepanov
90347141bd Use Qt signal for macOS Dock icon click event
This moves the Dock icon click reaction code to the common place and
allows some cleanup in obj_c code.

According to the Apple's docs `class_replaceMethod` behaves as
`class_addMethod`, if the method identified by name does not yet exist;
or as `method_setImplementation`, if it does exist.

Github-Pull: #14597
Rebased-From: 2464925e7b
2018-12-30 11:21:15 +00:00
Hennadii Stepanov
4d4bc37df9 Remove obj_c for macOS Dock icon setting
Qt `setWindowIcon()` does this work.

Github-Pull: #14597
Rebased-From: 53bb6be3f8
2018-12-30 00:23:47 +00:00
Hennadii Stepanov
d2ed162ce0 Clean systray icon menu for -disablewallet mode
Ref #3392

Github-Pull: #14383
Rebased-From: 36323e2ac6
2018-12-30 00:20:18 +00:00
João Barbosa
298dc15686 gui: Favor macOS show / hide action in dock menu
Github-Pull: #14133
Rebased-From: ee3a494f37
2018-12-30 00:19:18 +00:00
1Il1
b4602e3240
fix testmempoolaccept CLI syntax
`testmempoolaccept "hexstring"` will give a "JSON parse error". The correct syntax is `testmempoolaccept \[\"hexstring\"\]` (but seems escaping is not displayed in other areas so leaving backspaces out).

Github-Pull: #14966
Rebased-From: b74a52192b
2018-12-29 17:15:55 +08:00
MarcoFalke
e11856515e
Merge #14893: 0.17 [Backport 14890] rpc: Avoid creating non-standard raw transactions
46c162df47 rpc: Avoid creating non-standard raw transactions (MarcoFalke)

Pull request description:

Tree-SHA512: f34678637c8b6559e5c0c2790b682af562479239b92be96e0d41806bade136866f9748487a021eb8c62b6a5027b0a1a2cbdee930243eac93edabef60cbd54eac
2018-12-24 13:06:32 +01:00
Gregory Sanders
ae1b6756c9
importmulti: Don't add internal addresses to address book
Github-Pull: #14679
Rebased-From: 7afddfa8ce
2018-12-09 22:32:45 +08:00
MarcoFalke
46c162df47 rpc: Avoid creating non-standard raw transactions
Github-Pull: #14890
Rebased-From: fa4c8679ed
2018-12-07 11:36:29 -05:00
Wladimir J. van der Laan
c6e4a1fca5
Merge #14889: [0.17] Backport #14424 (Stop requiring imported pubkey to sign non-PKH schemes)
89a9a9d938 Stop requiring imported pubkey to sign non-PKH schemes (Pieter Wuille)

Pull request description:

  Github-Pull: #14424
  Rebased-From: 2f6b466aeb

Tree-SHA512: 1ea10dee66626f04918f197cd7c4949a836fa49c8f676f276b2328f8d79389059db7b30fc04d4c4bf8209f6a8d21f3ea49a017ddc7623eca6b7e6efc2fe0d749
2018-12-07 00:10:06 +01:00
Pieter Wuille
89a9a9d938 Stop requiring imported pubkey to sign non-PKH schemes
Github-Pull: #14424
Rebased-From: 2f6b466aeb
2018-12-07 10:30:22 +13:00
MarcoFalke
abae8aeff1
Merge #14880: 0.17: Backport #14453
dcb032dcdf qa: Ensure wallet unload during walletpassphrase timeout (João Barbosa)
75b5d8c4ea rpc: Fix wallet unload during walletpassphrase timeout (João Barbosa)

Pull request description:

  Backport #14453 to 0.17

Tree-SHA512: fce0adccbb07b6635bb773a71beb4a9b814bceb77bbe7bbc5bcb7d151aabb1148c791622f58c990afe202012ca1971cd466cb536fc6f37e22cdc58738720b593
2018-12-06 13:07:25 -05:00
João Barbosa
75b5d8c4ea rpc: Fix wallet unload during walletpassphrase timeout
Github-Pull: #14453
Rebased-From: 321decf
2018-12-05 23:14:10 +00:00
Gregory Sanders
7a590d8390 fix converttopsbt permitsigdata arg, add basic test
Github-Pull: #14356
Rebased-From: 88a79cb436
2018-12-05 17:38:57 -05:00
Glenn Willen
db445d4e5a Refactor PSBTInput signing to enforce invariant
Refactor the process of PSBTInput signing to enforce the invariant that
a PSBTInput always has _either_ a witness_utxo or a non_witness_utxo,
never both.

This simplifies the logic of SignPSBTInput slightly, since it no longer
has to deal with the "both" case. When calling it, we now give it, in
order of preference: (1) whichever of the utxo fields was already
present in the PSBT we received, or (2) if neither, the
non_witness_utxo field, which is just a copy of the input transaction,
which we get from the wallet.

SignPSBTInput no longer has to remove one of the two fields; instead, it
will check if we have a witness signature, and if so, it will replace
the non_witness_utxo with the witness_utxo (which is smaller, as it is
just a copy of the output being spent.)

Add PSBTInput::IsSane checks in two more places, which checks for
both utxo fields being present; we will now give an RPC error early on
if we are supplied such a malformed PSBT to fill in.

Also add a check to FillPSBT, to avoid touching any input that is
already signed. (This is now redundant, since we should no longer
potentially harm an already-signed input, but it's harmless.)

fixes #14473

Github-Pull: #14588
2018-12-03 10:37:08 -08:00
Glenn Willen
ad94165db9 Simplify arguments to SignPSBTInput
Remove redundant arguments to SignPSBTInput -- since it needs several
bits of the PartiallySignedTransaction, pass in a reference instead of
doing it piecemeal. This saves us having to pass in both a PSBTInput and
its index, as well as having to pass in the CTransaction. Also avoid
redundantly passing the sighash_type, which is contained in the
PSBTInput already.

Github-Pull: #14588
Rebased-From: 0f5bda2bd9
2018-12-03 10:36:37 -08:00
Glenn Willen
39ece4fc28 Add bool PSBTInputSigned
Refactor out a "PSBTInputSigned" function to check if a PSBT is signed,
for use in subsequent commits.

Also improve a related comment.

GitHub-Pull: #14588
Rebased-From: 53e6fffb8f
2018-12-03 10:36:08 -08:00
Glenn Willen
70ee1f8709 New PartiallySignedTransaction constructor from CTransction
New constructor that creates a PartiallySignedTransaction from a
CTransaction, automatically sizing the inputs and outputs vectors for
convenience.

Github-Pull: #14588
Rebased-From: 65166d4cf8
2018-12-03 10:35:34 -08:00
Glenn Willen
a9eab081d5 Remove redundant txConst parameter to FillPSBT
Github-Pull: #14588
Rebased-From: 4f3f5cb4b1
2018-12-03 10:34:57 -08:00
Glenn Willen
cfdd6b2f6c More concise conversion of CDataStream to string
Use .str() instead of .data() and .size() when converting CDataStream to
a string. Uses std::string, avoiding conversion to a C string.

Github-Pull: #14588
Rebased-From: fe5d22bc67
2018-12-03 10:34:20 -08:00
Andrew Chow
a3fe125490 check that a separator is found for psbt inputs, outputs, and global map
Github-Pull: #14377
Rebased-From: 4fb3388db9
2018-12-03 10:32:58 -08:00
MarcoFalke
3362a95be3
Merge #14196: [0.17][psbt] always drop the unnecessary utxo and convert non-witness utxo to witness when necessary
fcefc6851a Convert non-witness UTXOs to witness if witness sig created (Andrew Chow)
fcdea8ad2a Drop the unnecessary UTXO based on the UTXOs present, not on earlier wallet things (Andrew Chow)

Pull request description:

  When we sign an input in a psbt that has a non-witness utxo but a witness signature is produced, we will now replace the non-witness utxo with the corresponding witness utxo. Furthermore, we should make sure that the correct UTXO type is used based on what UTXOs are there, not based on earlier wallet behavior.

  Note that this is PR'd to the 0.17 branch because the code here no longer exists in master.

Tree-SHA512: 882e9e4e9b77d6ac1743c35c0d59023aad6f4f19193398f97f2c6b81f6627d74e5220b1d674a0edba1ff2fc2a7f61afbf838d3faf0a964fccd3dee97c631aa47
2018-12-01 12:31:14 -05:00
Gregory Sanders
2a5cc40dc4 CreateTransaction: Assume minimum p2sh-p2wpkh spend size for unknown change 2018-11-30 11:08:41 -05:00
Gregory Sanders
53dcf2b407 Remove stale comment in CalculateMaximumSignedInputSize 2018-11-30 11:08:35 -05:00
practicalswift
79358817e5
Add SAFE_CHARS[SAFE_CHARS_URI]: Chars allowed in URIs (RFC 3986)
Github-Pull: #14618
Rebased-From: ab8c6f24d2
2018-11-29 18:34:58 +08:00
practicalswift
9666dbaf09
rpc: Make HTTP RPC debug logging more informative
Github-Pull: #14618
Rebased-From: 991248649b
2018-11-29 18:34:15 +08:00
Kaz Wesley
b90157891a
add test demonstrating addrLocal UB
Github-Pull: #14728
Rebased-From: 8ebbef0169
2018-11-29 18:32:48 +08:00
Kaz Wesley
6f04264bbb
fix uninitialized read when stringifying an addrLocal
Reachable from either place where SetIP is used when our best-guess
addrLocal for a peer is IPv4, but the peer tells us it's reaching us at
an IPv6 address.

In that case, SetIP turns an IPv4 address into an IPv6 address without
setting the scopeId, which is subsequently read in GetSockAddr during
CNetAddr::ToStringIP and passed to getnameinfo. Fix by ensuring every
constructor initializes the scopeId field with something.

Github-Pull: #14728
Rebased-From: b7b36decaf
2018-11-29 18:32:05 +08:00
Gregory Sanders
5782fdcd8c
Throw error if CPubKey is invalid during PSBT keypath serialization
Github-Pull: #14690
Rebased-From: 4e4de10f69
2018-11-29 11:51:47 +08:00
Luke Dashjr
de5e48a461
Bugfix: RPC: Add address_type named param for createmultisig
Github-Pull: #14596
Rebased-From: d8bf1071cf
2018-11-29 11:50:17 +08:00
Eric Scrivner
fb9ad043f8 Fix listreceivedbyaddress not taking address as a string
Fixes #14173. Add the patch in #14173 and include a regression test.

Github-Pull: #14417
Rebased-From: d4d70eda33
2018-11-28 15:35:05 -05:00
practicalswift
91fa15aaeb wallet: Avoid potential use of unitialized value bnb_used in CWallet::CreateTransaction(...)
Github-Pull: #13546
Rebased-From: a23a7f60aa
2018-11-28 15:35:05 -05:00
Kaz Wesley
2f9fd29321 disallow oversized CBlockHeaderAndShortTxIDs
Otherwise we'd reply with a bogus BlockTransactionsRequest trying to
request indexes with overflowed deltas.

Github-Pull: #14685
Rebased-From: b08af10fb2
2018-11-28 15:35:05 -05:00
Kaz Wesley
5331ad0506 fix a deserialization overflow edge case
A specially-constructed BlockTransactionsRequest can overflow in
deserialization in a way that is currently harmless.

Github-Pull: #14685
Rebased-From: 6bed4b374d
2018-11-28 15:35:05 -05:00
Kaz Wesley
94065024c7 add a test demonstrating an overflow in a deserialization edge case
Also add a test that the highest legal index is accepted.

Github-Pull: #14685
Rebased-From: 051faf7e9d
2018-11-28 15:35:05 -05:00
gustavonalle
bb90695551 [wallet] Ensure wallet is unlocked before signing
Github-Pull: #14310
Rebased-From: db15805668
2018-11-28 15:35:05 -05:00
Wladimir J. van der Laan
5150accdd2
Merge #14441: [wallet] Backport(0.17): Restore ability to list incoming transactions by label
89306ab0df [wallet] Restore ability to list incoming transactions by label (Russell Yanofsky)

Pull request description:

  Backport of PR #14411 to v0.17.

  This change partially reverts #13075 and #14023.

  Fixes #14382

Tree-SHA512: 1f8300e1a79e826cd706561265b8788deef505fa510be1a76ed9a62e5fca37cf6a741423ac0e5de2a36d6e8b9f25f141885455aacacbbf6474814e6eae406a27
2018-11-10 12:45:44 +01:00
Tim Ruffing
0242b5afa4
qt: Revert "Force TLS1.0+ for SSL connections"
This reverts commit 15e26a6a9a, whose
purpose was to tweak the Qt configuration to force TLS, i.e., to
disable SSLv3, in Qt versions >= 5.5. However, the default behavior
of Qt >= 5.4 is to disable SSLv3 anyway [1], so the configuration
tweak is redundant.

With Qt 5.11.2, the configuration tweak is not only redundant but in
fact provokes a deadlock (#14359) due to Qt 5.11.2 being incompatible
with OpenSSL 1.1.1 [2]. Since the deadlock occurs at the early startup
stage of bitcoin-qt, it renders bitcoin-qt entirely non-functional
when compiled against OpenSSL 1.1.1 and Qt 5.11.2 (and possible future
combinations of OpenSSL and Qt versions).

This commit fixes #14359 by removing the redundant code.

[1] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=3fd2d9eff8c1f948306ee5fbfe364ccded1c4b84
[2] https://bugreports.qt.io/browse/QTBUG-70956

Github-Pull: #14403
Rebased-From: 7d173c4cd1
Tree-SHA512: 71a34b13202c834c5ca73bcb9b70efff26c34e1aac3b954f098620b62c2be53a8e319929c4764a5b5cc5d0dd163ff70f4eb3a4f1f608363b7d23d1b16b25ddc7
2018-11-06 09:03:28 +01:00
MarcoFalke
76dd5257f9
Merge #14566: 0.17: qa backports
9461f98c53 Disable wallet and address book Qt tests on macOS minimal platform (Russell Yanofsky)
703a24418c descriptors.md: Refer to descriptors as describing instead of matching (Russell Yanofsky)
5f51fd6d59 doc/descriptors.md tweaks (Russell Yanofsky)
29899ecd36 Import CInv from correct module (Chun Kuan Lee)
f7adb32e38 qa: Run all tests even if wallet is not compiled (MarcoFalke)
86fadee990 qa: Premine to deterministic address with -disablewallet (MarcoFalke)
8bc1badada Test rpc_help.py failed: Check whether ZMQ is enabled or not. (Kvaciral)
24d796a6cc test: Add tests for RPC help (João Barbosa)
168efeaca6 qa: Use named args in some tests (MarcoFalke)
73e538cf6a scripted-diff: Use named arguments in feature_block (MarcoFalke)
96dc936862 scripted-diff: Pass node into p2p_segwit acceptance tests (MarcoFalke)
7ff32a6b98 qa: Add some actual witness in rpc_rawtransaction (MarcoFalke)
b72fbabe17 [qa] Use correct python index slices in example test (Suhas Daftuar)
06544faff0 qa: Add TestNode::assert_debug_log (MarcoFalke)

Pull request description:

  Just the test and doc changes from #14328 to prevent that one from piling up.

Tree-SHA512: 51c1e66d346cbf51bc67b2f365448620dd9992ba4ef70592c5eb489cd50a047dab8179c86db2cafe161d8b2aa04498cc760fb5deb7eef49b39272911c74227a9
2018-10-28 06:44:08 -04:00
Russell Yanofsky
9461f98c53 Disable wallet and address book Qt tests on macOS minimal platform
macOS Qt minimal platform is frequently broken, and these are currently failing
with Qt 5.11.1.

The tests do pass when run on the full cocoa platform
(with `test_bitcoin-qt -platform cocoa`).

Github-Pull: #14011
Rebased-From: a3197c5294
2018-10-24 22:03:20 -04:00
Sjors Provoost
f7dbcaa72f
[doc] getblocktemplate: use SegWit in example 2018-10-18 15:06:31 +07:00
Russell Yanofsky
89306ab0df [wallet] Restore ability to list incoming transactions by label
Backport of PR 14411 to v0.17.

This change partially reverts #13075 and #14023.

Fixes #14382
2018-10-10 16:34:50 +09:00
Suhas Daftuar
833180f538 Fix crash bug with duplicate inputs within a transaction
Introduced by #9049
2018-09-17 16:14:31 -04:00
Andrew Chow
fcefc6851a Convert non-witness UTXOs to witness if witness sig created
If a witness signature was created when a non-witness UTXO is used,
convert the non-witness UTXO to a witness one.
2018-09-11 00:11:00 -04:00
Andrew Chow
fcdea8ad2a Drop the unnecessary UTXO based on the UTXOs present, not on earlier wallet things
Instead of dropping the unnecessary UTXO based on whether the wallet did something,
do it based on whether two UTXOs are there.
2018-09-11 00:09:57 -04:00
Pieter Wuille
465a583f9d
Replace duplcate reference with reference to reference doc
Github-Pull: #14096
Rebased-From: 2b5d6f8df2
Tree-SHA512: 79af808c581ebb17d60aab8322b1debcc4182480b84eaedcbfac1e67c8b543c61df22789095742d67d732dba35e7e5fad77912385b695f89fb0f44f75db11560
2018-09-06 14:52:00 +02:00
Pieter Wuille
eece974d0a
Adjust TODO link
Github-Pull: #14096
Rebased-From: 89709db7a2
Tree-SHA512: 0bf74e1179bee6e616d8fd2c125411ef30611d9aa3b32412025615a793abbc629a7b6d89a89ef05b11ac3541cc869c0caebba2d00942fdd6ab8d2e98d9b9caca
2018-09-06 14:51:59 +02:00
Wladimir J. van der Laan
83aafd5b32
util: Report parse errors in configuration file
Report errors while parsing the configuration file, instead of silently
ignoring them.

    $ src/bitcoind -regtest
    Error reading configuration file: parse error on line 22: nodebuglogfile, if you intended to specify a negated option, use nodebuglogfile=1 instead
    $ src/bitcoind -regtest
    Error reading configuration file: parse error on line 22: sdafsdfafs
    $ src/bitcoind -regtest
    Error reading configuration file: parse error on line 24: -nodebuglogfile=1, options in the configuration file must be specified without leading -

Github-Pull: #14105
Rebased-From: a66c0f78a9
Tree-SHA512: 2b6be1ab643623e6ef9b53354820147a6c5d2baae3795ffe428fc60d8563ec00a68a379aee4029380f80f892abe23763afb1c75c32b60a13bffe7b82496bf2bb
2018-09-06 13:54:01 +02:00
Wladimir J. van der Laan
2936dbc557 doc: Change documentation for =0 for non-boolean options
PR #12713 changed the interpretation for negation of non-boolean options
(e.g. -noconnect) to no longer set the option to 0, but to remove it
from the options.

I think this is better because it gets rid of the special meaning of
'0'.

However it needs to be documented. I attempt to do so in this PR.
Addreses #14064.

Github-Pull: #14100
Rebased-From: e9a78e9b3b
2018-09-05 14:39:36 -04:00
Gregory Sanders
2307a6eb2b
fix walletcreatefundedpsbt deriv paths, add test
Github-Pull: #14055
Rebased-From: 61fe653bd9
Tree-SHA512: 2f3edf62318fab4b405b47788096005f59cbe6ba4723fe51ce3b386539a58b7ea7369c31c3840c6baa76cdf6ba8f8440f977c36e2ee2916e711d7872bd1eadad
2018-08-28 23:11:41 +02:00
Jesse Cohen
cf3d7f94c2 Use assert when running from multithreaded code as BOOST_CHECK_* are not thread safe
Github-Pull: #14069
Rebased-From: 737670c036
2018-08-27 13:44:41 -04:00
MarcoFalke
fab0fbefcf qa: Stop txindex thread before calling destructor
Github-Pull: #14071
Rebased-From: faf4a9b674
2018-08-27 13:44:14 -04:00
Ben Woosley
b5ec6d4bf8 Docs: Fix help message typo optiona -> optional
Github-Pull: #14056
Rebased-From: 7d0a8ad310
2018-08-27 13:43:55 -04:00
Gregory Sanders
9833545d18
RPCTypeCheck bip32derivs arg in walletcreatefunded
Github-Pull: #13968
Rebased-From: faaac5caaa
Tree-SHA512: 758c0c3e4435897d1a9b03ea93f1b2a1a1b64071eda9450f968acf537c172ee61acf9d962bc22ddb6de26e0ad39d9165cdee6f260bb5a95bf97b4003853f0874
2018-08-21 09:44:53 +02:00