Commit graph

2306 commits

Author SHA1 Message Date
Andrew Poelstra
c1b3291e4f Merge b1a457ab1d into merged_master (Bitcoin PR #21324) 2021-06-25 22:03:40 +00:00
Andrew Poelstra
2174dd81e1 Merge 9212e67463 into merged_master (Bitcoin PR #21346) 2021-06-25 21:30:44 +00:00
Andrew Poelstra
6ff6a77361 Merge 0b294c0ba8 into merged_master (Bitcoin PR #21342) 2021-06-25 20:05:46 +00:00
Andrew Poelstra
362765a450 Merge b9f41df1ea into merged_master (Bitcoin PR #20685) 2021-06-25 19:49:38 +00:00
Andrew Poelstra
7debcb2f14 Merge 362e901a17 into merged_master (Bitcoin PR #18466) 2021-06-25 18:07:46 +00:00
Andrew Poelstra
bfdb0539b2 Merge e52ce9f2b3 into merged_master (Bitcoin PR #21286) 2021-06-25 17:53:46 +00:00
Andrew Poelstra
15d0077de7 Merge b54a10e777 into merged_master (Bitcoin PR #21292) 2021-06-25 03:00:19 +00:00
Andrew Poelstra
578ee6183f Merge a9335e4f12 into merged_master (Bitcoin PR #16546)
There are a few layers of bullshit to this PR.

First, there is the fact that it adds a functional test gated on a new
config flag which is disabled by default, so it actually adds broken
code with no tests, waiting to ruin your day 520 PRs later when #21935
enables the broken test.

Second, the test appears to be superficially nonsensical because it
generates two transactions from different wallets and tries to compare
them for byte-for-byte equality, which doesn't make sense (at least)
because change outputs are randomly located...so something fishy is
going on.

Of course, in Elements the transactions are *not* equal half the time
because the outputs are permuted, which may have let me quickly figure
out the issue, except...

Third, there is a red herring of a bug where the two transactions have
slightly different feerates. This turns out to be caused by
CWallet::CalculateMaximumSignedTxSize using differently sized dummy
transactions depending on whether watchonly outputs are included (this
fact is conveniently disguised by #17211 slightly changing this logic;
this is an unmerged PR in Core that Elements has a backport of an old
version of). And the two wallets have different watchonly settings.

A sub-red-herring is the fact that this bug results in a discrepancy
of 0.25 vbytes, so it does not appear in Core but does appear in
Elements (there is a 3/16 probability that we should be so unlucky...
we are).

But this is all irrelevant, because...

Fourth, this test is actually super bullshit. The way it works is by
constructing a PSBT legitimately, saving this to disk, then re-"signs"
using the external signer interface by using a mock signer that
COMPLETELY REPLACES THE TRANSACTION UNDER CONSTRUCTION. So it doesn't
matter what the fee output looks like and it doesn't matter what the
order of the outputs. Core does not detect this malfeasance and
neither does Elements. For some reason, Core has a functional test
that explicitly checks that you can do this even though it is insane
and it is hard to think of non-malicious reasons to do it.

Fifth, while Elements fails to detect that its external signer is
actually changing the transaction out from under it, it DOES assume
that this won't happen. In CWallet::SignPSBT it blithely un-replaces
the transaction, which undermines the functional test.

Sixth, the original PR where this test was introduced has comments
locked, so anyone who spent six hours reverse-engineering this idiotic
broken test, and is still feeling charitable enough to discuss it with
the Core developors, can go pound sand.

Anyway, just disabled the broken test and move on with our lives.
2021-07-27 00:19:01 +00:00
Andrew Poelstra
3b07a0813a Merge 34d7030063 into merged_master (Bitcoin PR #21202) 2021-06-24 19:34:45 +00:00
Andrew Poelstra
819ed1e785 Merge 04e01606e3 into merged_master (Bitcoin PR #21205) 2021-06-24 14:39:52 +00:00
Andrew Poelstra
30e50425ca Merge 7f831346cb into merged_master (Bitcoin PR #20380) 2021-06-24 00:26:19 +00:00
Andrew Poelstra
c54075afab Merge df8892dc9f into merged_master (Bitcoin PR #20986) 2021-06-23 13:04:11 +00:00
Andrew Poelstra
96e4fca4db Merge b08cbd09b8 into merged_master (Bitcoin PR #21028) 2021-06-23 04:09:05 +00:00
Andrew Poelstra
271029357b Merge 9996b1806a into merged_master (Bitcoin PR #21064) 2021-06-23 03:30:31 +00:00
Andrew Poelstra
11b1ad9b50 Merge 19b1ceddc7 into merged_master (Bitcoin PR #21075) 2021-06-21 13:42:59 +00:00
Andrew Poelstra
77f846938e Merge b09ad737ee into merged_master (Bitcoin PR #20944) 2021-06-21 12:51:08 +00:00
Andrew Poelstra
8960226b7c Merge 1815847103 into merged_master (Bitcoin PR #21105) 2021-06-21 03:40:29 +00:00
Andrew Poelstra
6638e8203d Merge 5a429d3d0f into merged_master (Bitcoin PR #21049) 2021-06-20 20:36:02 +00:00
Andrew Poelstra
5c323ec746 Merge 56fcf93349 into merged_master (Bitcoin PR #21026) 2021-06-20 15:30:27 +00:00
Andrew Poelstra
78dca68c7e Merge 11d3b58336 into merged_master (Bitcoin PR #20757) 2021-06-19 00:52:39 +00:00
Andrew Poelstra
2f2c49cd6b Merge 52d84a45e2 into merged_master (Bitcoin PR #20987) 2021-06-18 19:27:17 +00:00
Andrew Poelstra
d660da8655 Merge 30e664dcce into merged_master (Bitcoin PR #20945) 2021-06-17 23:15:03 +00:00
Andrew Poelstra
752c398094 Merge ad571bd354 into merged_master (Bitcoin PR #20931) 2021-06-17 21:37:53 +00:00
Andrew Poelstra
7edece4a69 Merge 22fa9673b0 into merged_master (Bitcoin PR #20917) 2021-06-17 21:06:43 +00:00
Andrew Poelstra
50f29236f8 Merge e7eb37128c into merged_master (Bitcoin PR #20913) 2021-06-17 20:51:51 +00:00
Andrew Poelstra
bf8b9387ba Merge 18017152c2 into merged_master (Bitcoin PR #20619) 2021-06-17 18:02:38 +00:00
Andrew Poelstra
7a13f34c66 Merge 708ef4424a into merged_master (Bitcoin PR #20890) 2021-06-17 03:49:38 +00:00
Andrew Poelstra
e402b0fb5c Merge 5574e48963 into merged_master (Bitcoin PR #20741) 2021-06-17 03:33:59 +00:00
Andrew Poelstra
c5a022192f Merge d7e2401c62 into merged_master (Bitcoin PR #18077) 2021-06-17 01:59:15 +00:00
Andrew Poelstra
617905a928 Merge 34322b7f5c into merged_master (Bitcoin PR #20842) 2021-06-16 18:28:04 +00:00
Andrew Poelstra
a6733375bf Merge 9c3765ad7c into merged_master (Bitcoin PR #20830) 2021-06-16 15:16:21 +00:00
Andrew Poelstra
08851f5ebb Merge e3dd0a56cf into merged_master (Bitcoin PR #20755) 2021-06-16 04:46:16 +00:00
Andrew Poelstra
994de82dac Merge 9b28bd73a3 into merged_master (Bitcoin PR #20691) 2021-06-15 13:07:58 +00:00
Andrew Poelstra
e797c493e1 Merge 7ef6b1c51d into merged_master (Bitcoin PR #19961) 2021-06-14 22:32:58 +00:00
Andrew Poelstra
7755242e9e Merge 8452f922d2 into merged_master (Bitcoin PR #19050) 2021-06-14 21:34:24 +00:00
Andrew Poelstra
54488be25f Merge 2d4eeaf9c5 into merged_master (Bitcoin PR #20601)
Looks like Bitcoin #18340 and Elements #815 did the same doc change.
Took the Bitcoin version.
2021-06-14 17:46:19 +00:00
Andrew Poelstra
5314c886d9 Merge 8bb40d5f56 into merged_master (Bitcoin PR #20560) 2021-06-14 13:42:32 +00:00
Andrew Poelstra
4c3000a77e Merge b76abae387 into merged_master (Bitcoin PR #20587) 2021-06-13 23:46:21 +00:00
Andrew Poelstra
6e6f6622fa Merge 86f2007193 into merged_master (Bitcoin PR #20527) 2021-06-13 23:25:03 +00:00
Andrew Poelstra
1d72c6dee8 Merge 22f13c1e08 into merged_master (Bitcoin PR #19776) 2021-06-13 19:18:27 +00:00
Andrew Poelstra
99a537027a Merge cef2efafce into merged_master (Bitcoin PR #20577) 2021-06-11 14:24:56 +00:00
Andrew Poelstra
90e6e0a67b Merge dca80ffb45 into merged_master (Bitcoin PR #20255) 2021-06-11 02:52:30 +00:00
Andrew Poelstra
0533e80b8c Merge 283f22cabb into merged_master (Bitcoin PR #20461) 2021-06-10 22:04:42 +00:00
Andrew Poelstra
0cf76ce682 Merge 335d27d081 into merged_master (Bitcoin PR #20512) 2021-06-10 19:11:03 +00:00
Andrew Poelstra
40cd7deb8b Merge 6f9dac5ede into merged_master (Bitcoin PR #20473) 2021-05-07 19:21:36 +00:00
Andrew Poelstra
0ecb5364be Merge 555b5d1bf9 into merged_master (Bitcoin PR #20419) 2021-05-07 17:59:54 +00:00
Andrew Poelstra
0a5257d126 Merge 86bf3ae3b5 into merged_master (Bitcoin PR #20202) 2021-05-07 17:19:00 +00:00
Andrew Poelstra
a0f440e27a Merge d4159984c3 into merged_master (Bitcoin PR #20223) 2021-05-07 15:22:08 +00:00
Andrew Poelstra
516ffe8400 Merge db58b857f7 into merged_master (Bitcoin PR #20329) 2021-05-06 22:01:12 +00:00
Andrew Poelstra
1d951c2239 Merge ea7926527c into merged_master (Bitcoin PR #20413) 2021-05-06 18:51:59 +00:00