Commit graph

31632 commits

Author SHA1 Message Date
Andrew Poelstra
705e356896 Merge cac10e66d2 into merged_master (Bitcoin PR #21264) 2021-06-25 14:10:05 +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
62c104e117 Merge 8ca6bd0dac into merged_master (Bitcoin PR bitcoin-core/gui#223) 2021-06-25 04:04:56 +00:00
Andrew Poelstra
1bbd69a6af Merge 09bc7bfed1 into merged_master (Bitcoin PR bitcoin-core/gui#214) 2021-06-25 03:49:22 +00:00
Andrew Poelstra
d2d21096af Merge 434065a483 into merged_master (Bitcoin PR bitcoin-core/gui#219) 2021-06-25 03:33:14 +00:00
Andrew Poelstra
3e634002c3 Merge 56f06a9863 into merged_master (Bitcoin PR #21271) 2021-06-25 03:17:13 +00:00
Andrew Poelstra
15d0077de7 Merge b54a10e777 into merged_master (Bitcoin PR #21292) 2021-06-25 03:00:19 +00:00
Andrew Poelstra
9acd1fc4e8 Merge 9307c588d0 into merged_master (Bitcoin PR #21293) 2021-06-25 02:44:43 +00:00
Andrew Poelstra
cb35ede634 Merge b59f2787e5 into merged_master (Bitcoin PR #18017) 2021-06-25 02:29:31 +00:00
Andrew Poelstra
359a5fb747 Merge 587c986ccf into merged_master (Bitcoin PR #21285) 2021-06-25 01:10:25 +00:00
Andrew Poelstra
1f8261dcae Merge 2e8116149c into merged_master (Bitcoin PR #21250) 2021-06-25 00:53:49 +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
fb73bb4d4c Merge 78effb37f3 into merged_master (Bitcoin PR #21222) 2021-06-24 23:53:10 +00:00
Andrew Poelstra
ff26d9127f Merge 84f6c695c6 into merged_master (Bitcoin PR #21274) 2021-06-24 23:37:19 +00:00
Andrew Poelstra
968ee435a1 Merge c263c3d7d2 into merged_master (Bitcoin PR #19698)
I really dislike this PR, which inverts the meaning of the validation
flags used by unit tests, adds a zillion ~s to the source to handle
this, does a ton of iterations resulting in massive error message
spam if any new flags (e.g. Elements' NO_SIGHASH_BYTE) do surprising
things.

It also adds a new compiler warning, which I didn't fix to keep
the diff minimal .
2021-06-24 23:18:56 +00:00
Andrew Poelstra
6cfd41becd Merge d386b54239 into merged_master (Bitcoin PR bitcoin-core/gui#213)
We had renamed the "Copy URI" GUI action to "Copy address"; Core added
a new "Copy address" action. So I deleted the old "Copy URI" action and
just kept the new "Copy address" one.
2021-06-24 21:31:50 +00:00
Andrew Poelstra
df70b3811a Merge 1e7dd584a5 into merged_master (Bitcoin PR #21263) 2021-06-24 21:14:53 +00:00
Andrew Poelstra
a4cc7c911e Merge 3371758af4 into merged_master (Bitcoin PR #21078) 2021-06-24 20:58:57 +00:00
Andrew Poelstra
b31f381473 Merge 64343a6110 into merged_master (Bitcoin PR #21089) 2021-06-24 20:46:43 +00:00
Andrew Poelstra
29e3669e30 Merge 7fca189a2a into merged_master (Bitcoin PR #79)
For this one I just re-applied the patch from the diff on Github.
It basically just removes the Monospace font property from all UI
elements in overviewpage.ui.
2021-06-24 20:34:07 +00:00
Andrew Poelstra
2f9409db22 Merge 84af29337c into merged_master (Bitcoin PR #21255) 2021-06-24 20:03:43 +00:00
Andrew Poelstra
3b07a0813a Merge 34d7030063 into merged_master (Bitcoin PR #21202) 2021-06-24 19:34:45 +00:00
Andrew Poelstra
38ff33f7e5 Merge 4b6ca4a35a into merged_master (Bitcoin PR #20845) 2021-06-24 19:11:13 +00:00
Andrew Poelstra
9614899541 Merge 5e4a3ca2f4 into merged_master (Bitcoin PR bitcoin-core/gui#211) 2021-06-24 18:59:04 +00:00
Andrew Poelstra
8bfdfd9e77 Merge 08eec6907a into merged_master (Bitcoin PR bitcoin-core/gui#206) 2021-06-24 18:46:53 +00:00
Andrew Poelstra
41743b65e8 Merge 0e9596c860 into merged_master (Bitcoin PR bitcoin-core/gui#205)
Some commented-out GUI code becomes conditional ... maybe it doesn't need to
be commented out anymore? I dunno, I left it alone.
2021-06-24 18:34:02 +00:00
Andrew Poelstra
2b9625fa81 Merge fd725c2d79 into merged_master (Bitcoin PR bitcoin-core/gui#204)
Some GUI changes that conflict with commented-out code. I made an educated
guess as to what new stuff should be commented out or not but honestly I
have no idea what the GUI is supposed to do or show.
2021-06-24 18:18:40 +00:00
Andrew Poelstra
01e64b2225 Merge 8d7d5f257b into merged_master (Bitcoin PR bitcoin-core/gui#202) 2021-06-24 17:59:24 +00:00
Andrew Poelstra
fe1e52f667 Merge 02fda8267a into merged_master (Bitcoin PR bitcoin-core/gui#179) 2021-06-24 17:47:01 +00:00
Andrew Poelstra
e353185d46 Merge 5bb64acd9d into merged_master (Bitcoin PR #21243) 2021-06-24 17:34:42 +00:00
Andrew Poelstra
4268df69bc Merge 828bb776d2 into merged_master (Bitcoin PR #20750) 2021-06-24 17:22:15 +00:00
Andrew Poelstra
792f148c68 Merge c46fe4d107 into merged_master (Bitcoin PR #21088) 2021-06-24 16:57:05 +00:00
Andrew Poelstra
f6e9f3b96f Merge f1c339d452 into merged_master (Bitcoin PR #21211) 2021-06-24 16:44:18 +00:00
Andrew Poelstra
c4cee850cf Merge 09eb46c943 into merged_master (Bitcoin PR #21187) 2021-06-24 15:53:57 +00:00
Andrew Poelstra
ceaad126f8 Merge 6a680a6236 into merged_master (Bitcoin PR #21226) 2021-06-24 15:41:30 +00:00
Andrew Poelstra
77e3c88f81 Merge f1c2f619a6 into merged_master (Bitcoin PR #21221) 2021-06-24 15:28:55 +00:00
Andrew Poelstra
bd07d081fa Merge f093310b2e into merged_master (Bitcoin PR #21228) 2021-06-24 15:16:37 +00:00
Andrew Poelstra
c647605af5 Merge 56fe4bb3c5 into merged_master (Bitcoin PR #21210) 2021-06-24 15:04:14 +00:00
Andrew Poelstra
819ed1e785 Merge 04e01606e3 into merged_master (Bitcoin PR #21205) 2021-06-24 14:39:52 +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
89db5e68a5 Merge cd66d8b1d8 into merged_master (Bitcoin PR #20429) 2021-06-24 02:44:14 +00:00
Andrew Poelstra
993a3aa40e Merge 372dd8da24 into merged_master (Bitcoin PR #21110) 2021-06-24 02:09:12 +00:00
Andrew Poelstra
9af7876d99 Merge 04336086d3 into merged_master (Bitcoin PR #21182) 2021-06-24 01:56:11 +00:00