Commit graph

2419 commits

Author SHA1 Message Date
Andrew Poelstra
aca7078cf9 Merge 1186910b6b into merged_master (Bitcoin PR bitcoin/bitcoin#22088) 2021-07-20 22:01:46 +00:00
Andrew Poelstra
19eaa87430 Merge a83bbf02c7 into merged_master (Bitcoin PR bitcoin/bitcoin#22054) 2021-07-20 15:42:46 +00:00
Andrew Poelstra
3bb3c02495 Merge 933c6466c2 into merged_master (Bitcoin PR bitcoin/bitcoin#22109) 2021-07-19 19:25:00 +00:00
Andrew Poelstra
8a669eccfb Merge 7257e50dba into merged_master (Bitcoin PR bitcoin/bitcoin#20833) 2021-07-18 18:11:25 +00:00
Andrew Poelstra
2d90d5eaa9 Merge 35b83e6e43 into merged_master (Bitcoin PR bitcoin/bitcoin#22056) 2021-07-17 16:21:56 +00:00
Andrew Poelstra
6bd09c0cf3 Merge 18cf1c5165 into merged_master (Bitcoin PR bitcoin/bitcoin#21991) 2021-07-11 20:40:15 +00:00
Andrew Poelstra
bae18ea9ed Merge 37e9f07996 into merged_master (Bitcoin PR bitcoin/bitcoin#21843) 2021-07-11 17:21:19 +00:00
Andrew Poelstra
5fd960f5a7 Merge 2fa3f30050 into merged_master (Bitcoin PR bitcoin/bitcoin#21988) 2021-07-11 01:00:25 +00:00
Andrew Poelstra
cc70f8d6da Merge 1ef34ee25e into merged_master (Bitcoin PR bitcoin/bitcoin#21947) 2021-07-10 18:04:07 +00:00
Andrew Poelstra
251048913c Merge 61fea52171 into merged_master (Bitcoin PR bitcoin/bitcoin#21942) 2021-07-10 13:37:53 +00:00
Andrew Poelstra
79ae2abb80 Merge db2990d01f into merged_master (Bitcoin PR bitcoin/bitcoin#21925) 2021-07-09 23:53:45 +00:00
Andrew Poelstra
424ca6c841 Merge 176842daa8 into merged_master (Bitcoin PR bitcoin/bitcoin#21912) 2021-07-09 15:15:21 +00:00
Andrew Poelstra
d56bdbd28f Merge 32692d2681 into merged_master (Bitcoin PR bitcoin/bitcoin#21359)
I hacked up rpc_fundrawtransaction.py a little bit because our `get_address`
method here depends on nobody having called `createwallet` on a particular
node ... the "correct" fix for this would be to redo the Elements changes
to this functional test for the 0.20+ createwallet changes, but because
there will be big future changes to this test (in Elements #900 (PSET))
I did the quick/hacky thing, and will defer cleanups to a separate
post-rebase PR.
2021-07-08 16:08:49 +00:00
Andrew Poelstra
50835e366e Merge 576300afb0 into merged_master (Bitcoin PR bitcoin/bitcoin#21856) 2021-07-06 22:46:46 +00:00
Andrew Poelstra
a5a02a17ab Merge 54617fad99 into merged_master (Bitcoin PR bitcoin/bitcoin#21709) 2021-07-06 21:57:10 +00:00
Andrew Poelstra
7cb5955c4e Merge 23109cc548 into merged_master (Bitcoin PR bitcoin/bitcoin#21753) 2021-07-06 19:46:06 +00:00
Andrew Poelstra
fb60da4597 Merge 60132382a7 into merged_master (Bitcoin PR bitcoin/bitcoin#20867) 2021-07-29 13:40:05 +00:00
Andrew Poelstra
d4e09a0738 Merge 2448457cca into merged_master (Bitcoin PR #21830) 2021-07-05 01:53:52 +00:00
Andrew Poelstra
3c9222f410 Merge 59869704c0 into merged_master (Bitcoin PR bitcoin/bitcoin#21818) 2021-07-05 01:03:56 +00:00
Andrew Poelstra
5f0c45b568 Merge ac219dcbcc into merged_master (Bitcoin PR bitcoin/bitcoin#19160) 2021-07-01 13:29:36 +00:00
Andrew Poelstra
a4e1fd2f33 Merge 0180453471 into merged_master (Bitcoin PR #21595) 2021-06-30 22:59:13 +00:00
Andrew Poelstra
d6c12d487e Merge 585cbe2257 into merged_master (Bitcoin PR #21695) 2021-06-30 18:02:40 +00:00
Andrew Poelstra
8b4d62b0ff Merge 3aa4935db7 into merged_master (Bitcoin PR #17934) 2021-06-30 02:40:16 +00:00
Andrew Poelstra
f2bd5dd18b Merge f0b457212f into merged_master (Bitcoin PR #21467) 2021-07-27 01:26:50 +00:00
Andrew Poelstra
3e3bb1c338 Merge f6c44e999b into merged_master (Bitcoin PR #21602) 2021-06-30 00:20:58 +00:00
Andrew Poelstra
83785ab18c Merge cb79cabdd9 into merged_master (Bitcoin PR #21594) 2021-06-29 21:29:09 +00:00
Andrew Poelstra
31f571ed0d Merge 9ac8f6d7dd into merged_master (Bitcoin PR #21598) 2021-06-29 17:22:19 +00:00
Andrew Poelstra
ccd5ecbdde Merge 2b2ab9ab78 into merged_master (Bitcoin PR #21544) 2021-06-29 00:57:03 +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
256ce55913 Merge 3bcd278aa6 into merged_master (Bitcoin PR bitcoin-core/gui#154) 2021-06-28 18:11:45 +00:00
Andrew Poelstra
eaa0d0b11c Merge 11840509fb into merged_master (Bitcoin PR #21484) 2021-06-28 17:59:25 +00:00
Andrew Poelstra
d5101eebcb Merge 23b15601df into merged_master (Bitcoin PR #17227) 2021-06-28 13:45:32 +00:00
Andrew Poelstra
fef8907d8d Merge fa2a5b8f3a into merged_master (Bitcoin PR #20421) 2021-06-28 03:33:18 +00:00
Andrew Poelstra
be12099e49 Merge 05757aa860 into merged_master (Bitcoin PR #21423) 2021-06-27 19:37:26 +00:00
Andrew Poelstra
d44ce3a73f Merge 8ec881d3b6 into merged_master (Bitcoin PR #20861) 2021-06-27 19:12:42 +00:00
Andrew Poelstra
ba5451846f Merge bf7c22f7ff into merged_master (Bitcoin PR #21435) 2021-06-27 15:30:48 +00:00
Andrew Poelstra
1156b3e76b Merge d6e3ac89d4 into merged_master (Bitcoin PR #21343)
I hate these PRs
2021-06-27 15:18:23 +00:00
Andrew Poelstra
a4a400ef64 Merge 993ecafa5e into merged_master (Bitcoin PR #21417) 2021-06-27 14:38:37 +00:00
Andrew Poelstra
5a36dfd349 Merge 3ba195aa48 into merged_master (Bitcoin PR #21398) 2021-06-27 00:47:20 +00:00
Andrew Poelstra
8c54b98b25 Merge e0bc27a14c into merged_master (Bitcoin PR #21404) 2021-06-26 22:39:09 +00:00
Andrew Poelstra
b5501dcbec Merge e797388f8b into merged_master (Bitcoin PR #21384) 2021-06-26 13:11:42 +00:00
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