Commit graph

3833 commits

Author SHA1 Message Date
Andrew Poelstra
83785ab18c Merge cb79cabdd9 into merged_master (Bitcoin PR #21594) 2021-06-29 21:29:09 +00:00
Andrew Poelstra
39c9dbe3c6 Merge 245a5cd560 into merged_master (Bitcoin PR #21166) 2021-06-29 20:13:10 +00:00
Andrew Poelstra
4b7d6fdcaa Merge 7aa0d8adf8 into merged_master (Bitcoin PR #21063) 2021-06-29 03:15:39 +00:00
Andrew Poelstra
54d3d598e1 Merge 6e22b522f9 into merged_master (Bitcoin PR #21373) 2021-06-29 02:06:38 +00:00
Andrew Poelstra
d39d57c704 Merge 1c7be9ab90 into merged_master (Bitcoin PR #20286)
I hate this PR.
2021-06-28 21:30:17 +00:00
Andrew Poelstra
6af6d1bc4e Merge 4399dc8142 into merged_master (Bitcoin PR #21509) 2021-06-28 18:36:41 +00:00
Andrew Poelstra
d976552b1c Merge 9b48b3ac42 into merged_master (Bitcoin PR #21390)
Diff reduction :) again just had to replace some fixed hashes
2021-06-28 15:54:24 +00:00
Andrew Poelstra
c1cf0e6fa4 Merge ed49203daa into merged_master (Bitcoin PR #21357) 2021-06-28 13:58:19 +00:00
Andrew Poelstra
8fea4687f4 Merge 7ce7ce5716 into merged_master (Bitcoin PR #21338) 2021-06-28 13:00:43 +00:00
Andrew Poelstra
1c58e32ee6 Merge 4132193617 into merged_master (Bitcoin PR #21040) 2021-06-27 21:04:51 +00:00
Andrew Poelstra
a4e0826481 Merge 3530d5d2d8 into merged_master (Bitcoin PR #18335) 2021-06-27 20:40:06 +00:00
Andrew Poelstra
d44ce3a73f Merge 8ec881d3b6 into merged_master (Bitcoin PR #20861) 2021-06-27 19:12:42 +00:00
Andrew Poelstra
ac1581a22d Merge 5ef16038a1 into merged_master (Bitcoin PR #21410) 2021-06-27 03:49:38 +00:00
Andrew Poelstra
d16103e6c4 Merge b650c9140e into merged_master (Bitcoin PR #21141) 2021-06-27 01:12:01 +00:00
Andrew Poelstra
43d7756b36 Merge e9b6400a1e into merged_master (Bitcoin PR #21411) 2021-06-26 21:31:48 +00:00
Andrew Poelstra
6ab18fa738 Merge 3172615d2c into merged_master (Elements PR ElementsProject/elements#986)
Note: up to this point I still had the old "sort by UNIX timestamp"
behavior on, which may have meant that some PRs were merged out of
order (i.e. multiple merged at once, followed by no-op merges). I
turned this off, and now just use git's default topo-sort (and manually
switch between Elements merges and Bitcoin merges).
2021-06-26 20:57:54 +00:00
Andrew Poelstra
24a86af27b Merge a8b0892b74 into merged_master (Bitcoin PR #20536)
This PR adds a new functional test which unfortunately we need to disable
because it triggers an unrelated Elements bug (assertation failure when
attempting a large fundrawtransaction).

See https://github.com/ElementsProject/elements/issues/880
2021-06-26 14:25:24 +00:00
Andrew Poelstra
f651c29f92 Merge f7653eb5ae into merged_master (Bitcoin PR #21345) 2021-06-26 02:23:36 +00:00
Andrew Poelstra
90f1f6650b Merge fbf5d16238 into merged_master (Bitcoin PR #21246) 2021-06-26 01:58:32 +00:00
Andrew Poelstra
9a55d65515 Merge 92b7efcf54 into merged_master (Bitcoin PR #21148) 2021-06-25 23:51:25 +00:00
Andrew Poelstra
367a454b34 Merge d099894ec1 into merged_master (Bitcoin PR #20969) 2021-06-25 23:39:05 +00:00
Andrew Poelstra
362765a450 Merge b9f41df1ea into merged_master (Bitcoin PR #20685) 2021-06-25 19:49:38 +00:00
Andrew Poelstra
850dc4d082 Merge cfce346508 into merged_master (Bitcoin PR #21310) 2021-06-25 19:33:48 +00:00
Andrew Poelstra
7debcb2f14 Merge 362e901a17 into merged_master (Bitcoin PR #18466) 2021-06-25 18:07:46 +00:00
Andrew Poelstra
84cd7a3598 Merge fb67caebe2 into merged_master (Bitcoin PR #21297) 2021-06-25 17:38:00 +00:00
Andrew Poelstra
ba1bff7fdc Merge 8d37841cdf into merged_master (Bitcoin PR #21277) 2021-06-25 16:24:48 +00:00
Andrew Poelstra
ac89deaff7 Merge c0e44ee8e4 into merged_master (Bitcoin PR #21254) 2021-06-25 15:52:53 +00:00
Andrew Poelstra
e4751a715c Merge 1b1d8bde1c into merged_master (Bitcoin PR #21252)
Had to change a new fixed constant in a test. I'm not sure exactly why
this one is different on Elements.
2021-06-25 13:42:53 +00:00
Andrew Poelstra
e99a9c186a Merge 2059d32edb into merged_master (Bitcoin PR #21200) 2021-06-25 13:13:25 +00:00
Andrew Poelstra
10a3ccdab4 Merge 1b045b5eef into merged_master (Bitcoin PR #21053) 2021-06-25 00:38:22 +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
cf1a11db0c Merge 9f3ffa2938 into merged_master (Bitcoin PR #21230) 2021-06-24 14:27:34 +00:00
Andrew Poelstra
5af69f3cb4 Merge 3a2d5bfeb3 into merged_master (Bitcoin PR #21201) 2021-06-24 14:15:01 +00:00
Andrew Poelstra
37c94c9100 Merge b805dbb0b9 into merged_master (Bitcoin PR #19809) 2021-06-24 13:52:54 +00:00
Andrew Poelstra
2cec742519 Merge 860f916803 into merged_master (Bitcoin PR #20524) 2021-06-24 13:40:22 +00:00
Andrew Poelstra
c1e4d9e7b0 Merge db656db2ed into merged_master (Bitcoin PR #19136) 2021-06-24 13:27:40 +00:00
Andrew Poelstra
5a654c9bab Merge 9017d55e7c into merged_master (Bitcoin PR #15946) 2021-06-24 02:56:40 +00:00
Andrew Poelstra
1c42ada28c Merge 69f7f50aa5 into merged_master (Bitcoin PR #20993) 2021-06-24 00:14:00 +00:00
Andrew Poelstra
937e79ce4d Merge 3c9d9d21e1 into merged_master (Bitcoin PR #21008) 2021-06-23 21:50:50 +00:00
Andrew Poelstra
5ac1d67769 Merge 489030f2a8 into merged_master (Bitcoin PR #20965) 2021-06-23 14:18:22 +00:00
Andrew Poelstra
59b1a731c8 Merge 8d6994f93d into merged_master (Bitcoin PR #21100) 2021-06-23 13:41:16 +00:00
Andrew Poelstra
6c0688628e Merge bf3189eda6 into merged_master (Bitcoin PR #21165) 2021-06-23 03:56:56 +00:00
Andrew Poelstra
401d0bb381 Merge e9c037ba64 into merged_master (Bitcoin PR #19884) 2021-06-23 03:43:29 +00:00
Andrew Poelstra
f8d2574a56 Merge 8d82eddee6 into merged_master (Bitcoin PR #19145) 2021-06-23 03:04:57 +00:00
Andrew Poelstra
a6af547c55 Merge 685c16fcb2 into merged_master (Bitcoin PR #21043) 2021-06-22 20:04:29 +00:00
Andrew Poelstra
50a0a6246b Merge d48f9e8ebb into merged_master (Bitcoin PR #21124) 2021-06-21 14:32:43 +00:00
Andrew Poelstra
e71719db1a Merge c4214d0e0d into merged_master (Bitcoin PR #21117) 2021-06-21 13:28:28 +00:00
Andrew Poelstra
77f846938e Merge b09ad737ee into merged_master (Bitcoin PR #20944) 2021-06-21 12:51:08 +00:00
Andrew Poelstra
323f9bf6cd Merge b401b09355 into merged_master (Bitcoin PR #21107) 2021-06-21 08:23:27 +00:00
Andrew Poelstra
bbfd887a43 Merge c969ab43c3 into merged_master (Bitcoin PR #21084) 2021-06-21 07:59:08 +00:00