7a590d8390 fix converttopsbt permitsigdata arg, add basic test (Gregory Sanders)
Pull request description:
Ooff, we missed some backports that were tagged.
Checked:
* In 7a590d8 (clean cherry-pick): The test changes fail without the code changes
Tree-SHA512: 9996886113dfcd8efa91f5436bc0f3507c81579861543611367bc3403868019fb1e45832c3f994f12278edb1c0c850e21f2f88e46a6981f45a11c4d61dcedaf9
0.17 branch doesn't include #12493 which changed encryptwallet behavior. For that
reason the test is adjusted.
Github-Pull: #14453
Rebased-From: 8907df9
Also update man pages.
Tree-SHA512: 826f3c9ad1e49902ee2f1710a4329388c0a9298a359971f21130bf8f390d4a7b744d010f04eb109666ceb28d0053b9fa7ec088caaa4e4cc38509526457086d40
7bee41452b Add test for conversion from non-witness to witness UTXO (Pieter Wuille)
ff56bb9b44 Add regression test for PSBT signing bug #14473 (Glenn Willen)
db445d4e5a Refactor PSBTInput signing to enforce invariant (Glenn Willen)
ad94165db9 Simplify arguments to SignPSBTInput (Glenn Willen)
39ece4fc28 Add bool PSBTInputSigned (Glenn Willen)
70ee1f8709 New PartiallySignedTransaction constructor from CTransction (Glenn Willen)
a9eab081d5 Remove redundant txConst parameter to FillPSBT (Glenn Willen)
cfdd6b2f6c More concise conversion of CDataStream to string (Glenn Willen)
a3fe125490 check that a separator is found for psbt inputs, outputs, and global map (Andrew Chow)
Pull request description:
This is a backport of #14588, #14377, and #14197's test to 0.17.
Tree-SHA512: 07535ec69a878a63b549e5e463345e233f34662dff805202614cf2ffc896c6d1981363e6d06d02db2e02d815075ad8ebdc5f93f637052cff8c8cbe6c8dfa096a
Refactor the process of PSBTInput signing to enforce the invariant that
a PSBTInput always has _either_ a witness_utxo or a non_witness_utxo,
never both.
This simplifies the logic of SignPSBTInput slightly, since it no longer
has to deal with the "both" case. When calling it, we now give it, in
order of preference: (1) whichever of the utxo fields was already
present in the PSBT we received, or (2) if neither, the
non_witness_utxo field, which is just a copy of the input transaction,
which we get from the wallet.
SignPSBTInput no longer has to remove one of the two fields; instead, it
will check if we have a witness signature, and if so, it will replace
the non_witness_utxo with the witness_utxo (which is smaller, as it is
just a copy of the output being spent.)
Add PSBTInput::IsSane checks in two more places, which checks for
both utxo fields being present; we will now give an RPC error early on
if we are supplied such a malformed PSBT to fill in.
Also add a check to FillPSBT, to avoid touching any input that is
already signed. (This is now redundant, since we should no longer
potentially harm an already-signed input, but it's harmless.)
fixes#14473
Github-Pull: #14588
Remove redundant arguments to SignPSBTInput -- since it needs several
bits of the PartiallySignedTransaction, pass in a reference instead of
doing it piecemeal. This saves us having to pass in both a PSBTInput and
its index, as well as having to pass in the CTransaction. Also avoid
redundantly passing the sighash_type, which is contained in the
PSBTInput already.
Github-Pull: #14588
Rebased-From: 0f5bda2bd9
Refactor out a "PSBTInputSigned" function to check if a PSBT is signed,
for use in subsequent commits.
Also improve a related comment.
GitHub-Pull: #14588
Rebased-From: 53e6fffb8f
New constructor that creates a PartiallySignedTransaction from a
CTransaction, automatically sizing the inputs and outputs vectors for
convenience.
Github-Pull: #14588
Rebased-From: 65166d4cf8
Use .str() instead of .data() and .size() when converting CDataStream to
a string. Uses std::string, avoiding conversion to a C string.
Github-Pull: #14588
Rebased-From: fe5d22bc67
fcefc6851a Convert non-witness UTXOs to witness if witness sig created (Andrew Chow)
fcdea8ad2a Drop the unnecessary UTXO based on the UTXOs present, not on earlier wallet things (Andrew Chow)
Pull request description:
When we sign an input in a psbt that has a non-witness utxo but a witness signature is produced, we will now replace the non-witness utxo with the corresponding witness utxo. Furthermore, we should make sure that the correct UTXO type is used based on what UTXOs are there, not based on earlier wallet behavior.
Note that this is PR'd to the 0.17 branch because the code here no longer exists in master.
Tree-SHA512: 882e9e4e9b77d6ac1743c35c0d59023aad6f4f19193398f97f2c6b81f6627d74e5220b1d674a0edba1ff2fc2a7f61afbf838d3faf0a964fccd3dee97c631aa47
Reachable from either place where SetIP is used when our best-guess
addrLocal for a peer is IPv4, but the peer tells us it's reaching us at
an IPv6 address.
In that case, SetIP turns an IPv4 address into an IPv6 address without
setting the scopeId, which is subsequently read in GetSockAddr during
CNetAddr::ToStringIP and passed to getnameinfo. Fix by ensuring every
constructor initializes the scopeId field with something.
Github-Pull: #14728
Rebased-From: b7b36decaf
542651cfb4 travis: Remove deprecated sudo (MarcoFalke)
ec71f06a8d build: Add bitcoin-tx.exe into Windows installer (Chun Kuan Lee)
7edebedef1 build: Remove illegal spacing in darwin.mk (Jon Layton)
fb9ad043f8 Fix listreceivedbyaddress not taking address as a string (Eric Scrivner)
91fa15aaeb wallet: Avoid potential use of unitialized value bnb_used in CWallet::CreateTransaction(...) (practicalswift)
96f15e8bb3 Tests: Fix a comment (fridokus)
60f7a97930 qa: Add test to ensure node can generate all help texts at runtime (MarcoFalke)
2f9fd29321 disallow oversized CBlockHeaderAndShortTxIDs (Kaz Wesley)
5331ad0506 fix a deserialization overflow edge case (Kaz Wesley)
94065024c7 add a test demonstrating an overflow in a deserialization edge case (Kaz Wesley)
85aacc41ba Add autogen.sh in ARM Cross-compilation (Walter)
bb90695551 [wallet] Ensure wallet is unlocked before signing (gustavonalle)
Pull request description:
Tree-SHA512: d82813134e5fc5437fe690127a4701d7ba66bf27799d7ecb1fbc2cc4dd81b6b3f708c1f314b725e8a3a6525ffa388299e277157f784f762256e01afb24822b25