Commit graph

177 commits

Author SHA1 Message Date
Andrew Poelstra
de97906fad Merge 91af7ef831 into merged_master (Bitcoin PR #19289) 2020-11-28 14:31:34 +00:00
Andrew Poelstra
7cd7baf583 Merge 5f96bce9b7 into merged_master (Bitcoin PR #18923) 2020-11-26 01:09:24 +00:00
Andrew Poelstra
9ac0c98505 Merge 7173a3c73b into merged_master (Bitcoin PR #19396) 2020-11-26 01:09:18 +00:00
Andrew Poelstra
c473bf0bce Merge bb588669f9 into merged_master (Bitcoin PR #19331) 2020-11-26 01:09:16 +00:00
Andrew Poelstra
4839db857d Merge c27330897d into merged_master (Bitcoin PR #18027) 2020-11-26 01:09:11 +00:00
Andrew Poelstra
067e1c3d95 Merge 0fc6ea216c into merged_master (Bitcoin PR #19096) 2020-11-26 01:08:59 +00:00
Andrew Poelstra
bfa1cef745 Merge f4b603cff6 into merged_master (Bitcoin PR #17993) 2020-11-26 01:08:53 +00:00
Andrew Poelstra
d359b993f1 Merge a587f85853 into merged_master (Bitcoin PR #18587) 2020-11-26 01:08:46 +00:00
Andrew Poelstra
d4711bdf91 Merge 23c926d859 into merged_master (Bitcoin PR #18699) 2020-11-26 01:08:37 +00:00
Andrew Poelstra
4414990576 Merge 608359b071 into merged_master (Bitcoin PR #16426) 2020-11-26 01:08:35 +00:00
Andrew Poelstra
1c12ae1719 Merge eef90c14ed into merged_master (Bitcoin PR #16528)
This is the 43-commit descriptor wallet PR. It was remarkably easy to merge, given
its magnitude. With this commit Elements supports importing Bitcoin descriptors
and deriving (Bitcoin) addresses, though of course it does not support blinding
yet. That is a post-rebase project.

The material changes were:

1. Changing constants in the tests (super annoying but nothing surprising)

2. Adding a missing "skip if this coin is not ours" check in src/script/sign.cpp
   which was causing us to erroneously remove existing witnesses from transactions.
   This wasn't a problem before this commit since we would only ask specific
   scriptpubkeymans to sign, and we'd never ask any to sign inputs we didn't
   own. Andy simplified the logic here to always try every scriptpubkeyman,
   which means they have to play a bit more nicely with each other.

Other than that, this was a big diff with many conflicts but literally all of
them were "we both added code" and the resolution was to take both sides.
2020-11-26 01:08:31 +00:00
Andrew Poelstra
fd37b7c5d6 Merge 54f812d9d2 into merged_master (Bitcoin PR #18673) 2020-11-26 01:08:23 +00:00
Andrew Poelstra
23cab4213a Merge 4702cadca9 into merged_master (Bitcoin PR #17954) 2020-11-26 01:08:19 +00:00
Andrew Poelstra
90081b0645 Merge 99d6a5be8b into merged_master (Bitcoin PR #17999) 2020-11-26 01:08:16 +00:00
Andrew Poelstra
0a87d878fa Merge 63dad67348 into merged_master (Bitcoin PR #18546) 2020-11-26 01:08:12 +00:00
Andrew Poelstra
879cfb6ad8 Merge c5966a87d1 into merged_master (Bitcoin PR #18192) 2020-11-26 01:08:11 +00:00
Andrew Poelstra
943443791e Merge f2880e21ef into merged_master (Bitcoin PR #18160) 2020-11-26 01:08:05 +00:00
Andrew Poelstra
bdd87dc5fa Merge 694f4cbd78 into merged_master (Bitcoin PR #18312) 2020-11-26 01:08:02 +00:00
Andrew Poelstra
90c7d5774a Merge ac579ada7e into merged_master (Bitcoin PR #18278) 2020-11-26 01:08:00 +00:00
Andrew Poelstra
5b9f316537 Merge dcf2ccbfde into merged_master (Bitcoin PR #18115)
I really like this PR, but it wound up being pretty nontrivial to merge.
The crux is that it pulls PSBT signing logic into scriptpubkey manager,
which is where it belongs, but for us this means reasoning about pegins
inside script/sign.cpp.

However, sign.cpp is part of libbitcoin_common, which does not include
anything for reasoning about PoW or RPC (lol) or anything heavy about
that. This means that some pegin validation had to remain split between
the wallet/rpc layer and sign.cpp. I added a new file script/pegins.cpp
which has the (one) method we actually need in sign.cpp.

Aside from that, this diff is very large but is mostly just moving our
code changes to wallet/psbtwallet.* into wallet/wallet.* where those
functions now live. As far as review, it's probably not worthwhile to
spend too much too much time on this since it's going to be change
again in #16528 and others. The test coverage is pretty extensive.
2020-11-26 01:07:51 +00:00
Andrew Poelstra
5bbbba1ce1 Merge 4d80274b99 into merged_master (Bitcoin PR #18241) 2020-11-26 01:07:50 +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
009bc2fdfb Merge 99813a9745 into merged_master (Bitcoin PR #17829) 2020-11-14 16:52:02 +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
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
34af974d28 Merge 471e5f8829 into merged_master (Bitcoin PR #16839) 2020-11-09 21:20:47 +00:00
Andrew Poelstra
e910b15aa8 Merge 6a97e8a060 into merged_master (Bitcoin PR #17260) (multiple commits)
This is the start of some nontrivial wallet refactoring by achow. See
https://github.com/bitcoin-core/bitcoin-devwiki/wiki/Wallet-Class-Structure-Changes
for a high-level design.

This PR moves some stuff out of CWallet into a dummy "box" LegacyScriptPubKeyMan
which is (currently) very tightly coulped to CWallet. Because of the coupling there
are currently null-checks that cannot fail, things which assume non-nullness which
will eventually be wrong, and a plethora of currently-equivalent ways to get from
a CWallet to a provider or back.

Our approach is basically to ignore the refactoring; leave the blinding key stuff
in CWallet and have it call into the wallet's provider when we are obtaining the
underlying keys.

Later, probably in a post-rebase PR, we should rethink how we manage blinding keys
to more closely match Core's "all keys go into providers" model.
2020-11-09 21:20:47 +00:00
Andrew Poelstra
fc2108d672 Merge 8a191148db into merged_master (Bitcoin PR #17154) 2020-11-09 21:20:43 +00:00
Andrew Poelstra
821f5256a5 Merge 46d6930f8c into merged_master (Bitcoin PR #16659) 2020-11-09 21:20:41 +00:00
Andrew Poelstra
a7df99d033 Merge e180be49d7 into merged_master (Bitcoin PR #17098) 2020-11-09 21:20:40 +00:00
Andrew Poelstra
29e73c226a Merge 5e202382a9 into merged_master (Bitcoin PR #16624) 2020-11-09 21:20:21 +00:00
Andrew Poelstra
7ce3241549 Merge 66c5045d5a into merged_master (Elements PR #693)
Fixes bug I mentioned when merging Bitcoin #16415
2020-11-09 21:20:20 +00:00
Andrew Poelstra
0888ad0cf3 Merge 1139e3cb76 into merged_master (Bitcoin PR #16415) 2020-11-09 21:20:08 +00:00
Andrew Poelstra
152198061a Merge 459baa1756 into merged_master (Bitcoin PR #16208) 2020-11-09 21:20:06 +00:00
Andrew Poelstra
a50b652932 Merge 735d6b57e7 into merged_master (Bitcoin PR #16227) 2020-11-09 03:58:21 +00:00
Andrew Poelstra
0065d674a4 Merge 8d1286014c into merged_master (Bitcoin PR #16237)
I'm sorry, this should have been a few commits, but it got away from me
as the scope of this refactoring was not immediately obvious. It essentially
just moves code around so hopefully is not too hard to review. --asp
2020-11-09 03:58:21 +00:00
Andrew Poelstra
f68fbc1a56 Merge fd333e15a5 into merged_master (Bitcoin PR #16226) 2020-11-06 15:20:16 +00:00
Andrew Poelstra
68d9951825 Merge d0f81a96d9 into merged_master (Bitcoin PR #16129) 2020-11-06 15:20:13 +00:00
Andrew Poelstra
c6ad410dd9 Merge a6beb256ed into merged_master (Elements PR #629) 2020-11-06 15:20:11 +00:00
Andrew Poelstra
ad0dc00fc2 Merge 3356799ee3 into merged_master (Bitcoin PR #15778) 2020-10-28 23:22:29 +00:00
Andrew Poelstra
1c4e3cbb5f Merge 4f4ef3138b into merged_master (Bitcoin PR #15557)
This restricts the `bumpfee` RPC, when given a feerate target, to unblinded
transactions, because this is the only way I could figure out quickly to
allow adding inputs to an already-created transaction. It appears to be the
strategy used by the `fundrawtransaction` RPC which has similar behaviour.
This should be fixed in a followup PR.
2020-10-28 15:36:05 +00:00
Andrew Poelstra
a8581ea138 Merge 6a135fbe5b into merged_master (Bitcoin PR #15638) 2020-10-28 03:16:57 +00:00
Andrew Poelstra
ccc0b0afff Merge db2985651d into merged_master (Bitcoin PR #15747) 2020-10-28 01:43:49 +00:00
Andrew Poelstra
5f340cc9ac Merge 2607d960a0 into merged_master (Bitcoin PR #10973) 2020-10-28 00:10:27 +00:00
Andrew Poelstra
edfdf46351 Merge 45f434f44d into merged_master (Bitcoin PR #15288) 2020-10-27 21:55:08 +00:00
João Barbosa
d8441f30ff wallet: IsMine overloads require cs_wallet lock 2020-08-17 00:06:03 +01:00
MarcoFalke
faf8401c19
wallet: Pass unused args to StartWallets
This refactor does not change behavior
2020-07-09 13:07:37 +02:00
Wladimir J. van der Laan
7173a3c73b
Merge #19396: refactor: Remove confusing OutputType::CHANGE_AUTO
fa927ff884 Enable Wswitch for OutputType (MarcoFalke)
faddad71f6 Remove confusing OutputType::CHANGE_AUTO (MarcoFalke)
fa2eb38352 interfaces: Remove unused getDefaultChangeType (MarcoFalke)

Pull request description:

  `OutputType::CHANGE_AUTO` is problematic for several reasons:

  * An output that is not change must never be described by `CHANGE_AUTO`. Simply allowing that option makes the code confusing and review harder than it needs to be.
  * To make review even harder, `CHANGE_AUTO` requires `-Wswitch` to be disabled for `OutputType`

  Fix both issues by removing `CHANGE_AUTO` and then enabling `-Wswitch` for `OutputType`

ACKs for top commit:
  promag:
    Code review ACK fa927ff884.
  laanwj:
    Code review ACK fa927ff884

Tree-SHA512: 24fd809757aa343866c94dafe9a7130b50cda4f77c97666d407f99b813f75b115a7d8e688a6bc2a737e87cba64ddd4e43f2b3c5538fd35fabb5845807bb39134
2020-07-02 16:10:49 +02:00