|
|
|
@ -4504,10 +4504,11 @@ bool FillPSBT(const CWallet* pwallet, PartiallySignedTransaction& psbtx, const C
|
|
|
|
|
|
|
|
|
|
// If we don't know about this input, skip it and let someone else deal with it
|
|
|
|
|
const uint256& txhash = txin.prevout.hash;
|
|
|
|
|
const auto& it = pwallet->mapWallet.find(txhash);
|
|
|
|
|
const auto it = pwallet->mapWallet.find(txhash);
|
|
|
|
|
if (it != pwallet->mapWallet.end()) {
|
|
|
|
|
const CWalletTx& wtx = it->second;
|
|
|
|
|
CTxOut utxo = wtx.tx->vout[txin.prevout.n];
|
|
|
|
|
// Update both UTXOs from the wallet.
|
|
|
|
|
input.non_witness_utxo = wtx.tx;
|
|
|
|
|
input.witness_utxo = utxo;
|
|
|
|
|
}
|
|
|
|
@ -4524,11 +4525,13 @@ bool FillPSBT(const CWallet* pwallet, PartiallySignedTransaction& psbtx, const C
|
|
|
|
|
complete &= SignPSBTInput(PublicOnlySigningProvider(pwallet), *psbtx.tx, input, sigdata, i, sighash_type);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Drop the unnecessary UTXO
|
|
|
|
|
if (sigdata.witness) {
|
|
|
|
|
input.non_witness_utxo = nullptr;
|
|
|
|
|
} else {
|
|
|
|
|
input.witness_utxo.SetNull();
|
|
|
|
|
if (it != pwallet->mapWallet.end()) {
|
|
|
|
|
// Drop the unnecessary UTXO if we added both from the wallet.
|
|
|
|
|
if (sigdata.witness) {
|
|
|
|
|
input.non_witness_utxo = nullptr;
|
|
|
|
|
} else {
|
|
|
|
|
input.witness_utxo.SetNull();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Get public key paths
|
|
|
|
|