diff --git a/src/script/sign.h b/src/script/sign.h --- a/src/script/sign.h +++ b/src/script/sign.h @@ -210,8 +210,10 @@ template inline void Serialize(Stream &s) const { // Write the utxo - SerializeToVector(s, PSBT_IN_UTXO); - SerializeToVector(s, utxo); + if (!utxo.IsNull()) { + SerializeToVector(s, PSBT_IN_UTXO); + SerializeToVector(s, utxo); + } if (final_script_sig.empty()) { // Write any partial signatures @@ -493,6 +495,7 @@ for (const PSBTInput &input : inputs) { s << input; } + // Write outputs for (const PSBTOutput &output : outputs) { s << output; diff --git a/src/script/sign.cpp b/src/script/sign.cpp --- a/src/script/sign.cpp +++ b/src/script/sign.cpp @@ -220,7 +220,7 @@ bool SignPSBTInput(const SigningProvider &provider, const CMutableTransaction &tx, PSBTInput &input, SignatureData &sigdata, int index, SigHashType sighash) { - // if this input has a final scriptsig, don't do anything with it + // If this input has a final scriptsig, don't do anything with it. if (!input.final_script_sig.empty()) { return true; }