Commit graph

2523 commits

Author SHA1 Message Date
Andrew Poelstra
e81fccc9a5 Merge 263f53e2d0 into merged_master (Bitcoin PR #18098) 2020-11-26 01:07:43 +00:00
Andrew Poelstra
54b93c4315 Merge 470664f2b7 into merged_master (Bitcoin PR #17746) 2020-11-26 01:07:43 +00:00
Andrew Poelstra
dd22beb3b3 Merge e5ab941489 into merged_master (Elements PR #813) 2020-11-26 01:07:41 +00:00
Andrew Poelstra
bcf509470b Merge 75fb37ce68 into merged_master (Bitcoin PR #18032) 2020-11-26 01:07:40 +00:00
Andrew Poelstra
d20bafff5e Merge 712b7d9b47 into merged_master (Bitcoin PR #17804) 2020-11-26 00:29:45 +00:00
Andrew Poelstra
3f02ec4810 Merge b30a1f3e39 into merged_master (Bitcoin PR #18052) 2020-11-26 00:29:45 +00:00
Andrew Poelstra
ca0936ab69 Merge 6d0e532ae0 into merged_master (Bitcoin PR #17585) 2020-11-26 00:29:43 +00:00
Andrew Poelstra
6658aeb789 Merge 44c2400bcc into merged_master (Bitcoin PR #18026) 2020-11-14 18:03:46 +00:00
Andrew Poelstra
91e195d7cd Merge 2d6e76af24 into merged_master (Bitcoin PR #17261)
Moved GetOnlinePakKey to the scriptpubkey manager; the other blinding
stuff remains in the CWallet. At some point after the rebase we should
consider whether there's a better separation to be had between the PAK
related stuff now that we have wallet boxes.
2020-11-14 17:16:10 +00:00
Andrew Poelstra
b918517e63 Merge aabec94541 into merged_master (Bitcoin PR #17719) 2020-11-14 16:52:13 +00:00
Andrew Poelstra
68d0a25901 Merge 1326092e6c into merged_master (Bitcoin PR #17156)
This fixes a segfault I introduced in 981df590811 (#17371) a couple hundred PRs
ago, where we might out-of-bounds access the vout arrray of a non_witness_utxo
transaction in a PSBT.

This logic should probably be refactored after the rebase -- we sift through
the non_witness_utxos to find a scriptpubkey, which we use to get a wallet
provider, so we can pass this to SignPSBTInput, which then repeats the same
logic (for its own reasons, and without the segfault bug)....and we aren't
even calling SignPSBTInput for signing reasons! It has something to do with
blinding.
2020-11-14 16:52:12 +00:00
Andrew Poelstra
65f6fc64e9 Merge 5d2ff75e20 into merged_master (Bitcoin PR #17945) 2020-11-14 16:52:09 +00:00
Andrew Poelstra
04f4f87466 Merge 7fb94c0ed4 into merged_master (Bitcoin PR #17889) 2020-11-14 16:52:08 +00:00
Andrew Poelstra
f1535dde72 Merge f018d0c9cd into merged_master (Bitcoin PR #17924) 2020-11-14 16:52:08 +00:00
Andrew Poelstra
c00da34db0 Merge c7ee0ac906 into merged_master (Elements PR #803) 2020-11-14 16:52:07 +00:00
Andrew Poelstra
8bbbb28dae Merge ac61ec9da6 into merged_master (Bitcoin PR #17843) 2020-11-14 16:52:07 +00:00
Andrew Poelstra
7c53615bb6 Merge af05bd9e1e into merged_master (Bitcoin PR #17891) 2020-11-14 16:52:07 +00:00
Andrew Poelstra
bf7738a5c8 Merge 6196e93001 into merged_master (Bitcoin PR #16963) 2020-11-14 16:52:05 +00:00
Andrew Poelstra
a5c0140923 Merge cab3859a35 into merged_master (Bitcoin PR #17677) 2020-11-14 16:52:04 +00:00
Andrew Poelstra
74d2e8da1b Merge 7ea3b85ecf into merged_master (Bitcoin PR #17578) 2020-11-14 16:52:04 +00:00
Andrew Poelstra
c0f55c006c Merge 45f151913e into merged_master (Bitcoin PR #16373) 2020-11-14 16:52:04 +00:00
Andrew Poelstra
4f611f400d Merge bcb4cdcca3 into merged_master (Bitcoin PR #17621) 2020-11-14 16:52:04 +00:00
Andrew Poelstra
009bc2fdfb Merge 99813a9745 into merged_master (Bitcoin PR #17829) 2020-11-14 16:52:02 +00:00
Andrew Poelstra
dc2a5e5af4 Merge e6acd9f72c into merged_master (Bitcoin PR #17537) 2020-11-14 16:52:00 +00:00
Andrew Poelstra
fe9767f625 Merge d4b335c60a into merged_master (Bitcoin PR #17617) 2020-11-14 16:51:58 +00:00
Andrew Poelstra
010703797d Merge 0192bd0652 into merged_master (Bitcoin PR #17369) 2020-11-14 16:51:57 +00:00
Andrew Poelstra
381cd9cd01 Merge 4ee8a58ce7 into merged_master (Bitcoin PR #17373)
This PR associates OutputType::BECH32 to PAK online keys, where before we
were able to directly access keys from the keypool. In a future refactoring
we should give PAK keys their own output type (and own scriptpubkey manager)
so that the wallet won't accept payments "to the PAK key".

Also changes `ReserveDestination::SetBlindingPubKey` to use a visitor pattern
to apply a blinding pubkey to a destination directly, rather than using the
old hacky method of regenerating the destination by pulling its key (which
is no longer contained in the class) out and giving it to a new constructor.
This was a long-overdue refactoring and the minimal-diff way to get the code
compiling (and it's not bad, maybe 10LOC to add a new visitor class) but
nonetheless I apologize for sticking this into a merge commit.
2020-11-14 16:51:54 +00:00
Andrew Poelstra
c7bf5baf96 Merge 526e802d69 into merged_master (Elements PR #755)
This Elements PR includes components of Core PR #17211, which since the
refactors to use effective value landed, no longer provides the right
error message when a user provides an unowned input from a wallet tx.
See https://github.com/bitcoin/bitcoin/pull/17211#pullrequestreview-528389011

This breaks a functional test which was included in this PR, but which
conveniently has been changed in the current version of the Core PR. I
fixed the behavior (commented, in SelectCoins) rather than updating the
test to the most recent version.
2020-11-14 16:51:53 +00:00
Andrew Poelstra
932da45ee4 Merge dcbe024f5e into merged_master (Bitcoin PR #17648) 2020-11-14 16:51:52 +00:00
Andrew Poelstra
fd78a12518 Merge 2949ea924f into merged_master (Elements PR #751) 2020-11-14 16:51:52 +00:00
Andrew Poelstra
05bbc1a822 Merge 2b6575d989 into merged_master (Bitcoin PR #17643) 2020-11-14 16:51:51 +00:00
Andrew Poelstra
27de4bdecf Merge 19698ac6bc into merged_master (Bitcoin PR #17568) 2020-11-14 16:51:51 +00:00
Andrew Poelstra
6a5fc1dd58 Merge d8a66626d6 into merged_master (Bitcoin PR #17283) 2020-11-14 16:51:50 +00:00
Andrew Poelstra
569c46ca22 Merge 6d00035cae into merged_master (Elements PR #778) 2020-11-14 16:51:50 +00:00
Andrew Poelstra
1df4f4164c Merge 0ee914ba9e into merged_master (Bitcoin PR #17584) 2020-11-14 16:51:49 +00:00
Andrew Poelstra
7a8b5877f2 Merge 9cbd87d8ee into merged_master (Bitcoin PR #17518) 2020-11-14 16:51:48 +00:00
Andrew Poelstra
dbec7759bf Merge 0b79caf658 into merged_master (Bitcoin PR #17447) 2020-11-14 16:51:48 +00:00
Andrew Poelstra
94e0266084 Merge 2a97d2b1a5 into merged_master (Bitcoin PR #17553) 2020-11-14 16:51:48 +00:00
Andrew Poelstra
58ed0240e9 Merge 7127c31020 into merged_master (Bitcoin PR #17237) 2020-11-14 16:51:48 +00:00
Andrew Poelstra
ba08079170 Merge 0aa72061e5 into merged_master (Bitcoin PR #16944) 2020-11-14 16:51:47 +00:00
Andrew Poelstra
9239882c43 Merge 8aac85d71e into merged_master (Bitcoin PR #17371) 2020-11-14 16:51:41 +00:00
Andrew Poelstra
240f03f586 Merge cef87f7a48 into merged_master (Bitcoin PR #17290)
This one took a little bit of work. Basically everywhere that Andy's new code
didn't compile, I looked for a similarly shaped line in the pre-PR diff between
Bitcoin and Elements and adjusted it in the same way. Was pretty typical; all
CAmounts become CAmountMaps, etc.

I then spent about 7 hours chasing down a coin selection failure in the blocksign
functional tests, which ultimately turned out to be a Core issue. I added a
stopgap fix (commented, search for "stopgap" in wallet.cpp), and opened the issue
https://github.com/bitcoin/bitcoin/issues/20347

There was also a bug where we were not estimating change output sizes correctly
in case we had massive blinded outputs, which I had to fix to get the functional
tests to pass.
2020-11-10 21:59:56 +00:00
Andrew Poelstra
5c15120d59 Merge b7bc9b8330 into merged_master (Bitcoin PR #17444) 2020-11-09 23:10:13 +00:00
Andrew Poelstra
bce97903cf Merge 1028882eea into merged_master (Bitcoin PR #17437) 2020-11-09 23:10:10 +00:00
Andrew Poelstra
f94f8bdfe9 Merge cef7df37ce into merged_master (Bitcoin PR #17410) 2020-11-09 23:10:09 +00:00
Andrew Poelstra
6bd0011f90 Merge 8021392b82 into merged_master (Bitcoin PR #17405) 2020-11-09 23:10:09 +00:00
Andrew Poelstra
c1d327d827 Merge 4a3b6f47cd into merged_master (Bitcoin PR #17354) 2020-11-09 23:10:09 +00:00
Andrew Poelstra
cfde15703a Merge 99ab3a72c5 into merged_master (Bitcoin PR #15931) 2020-11-09 23:10:09 +00:00
Andrew Poelstra
056b9bb06d Merge 46fc4d1a24 into merged_master (Bitcoin PR #17384) 2020-11-09 23:10:08 +00:00
Andrew Poelstra
9ec912e160 Merge 976cc766c4 into merged_master (Bitcoin PR #17381) 2020-11-09 23:10:08 +00:00