diff --git a/src/node/psbt.cpp b/src/node/psbt.cpp index 5b78001c6d6..699d1d5f7ce 100644 --- a/src/node/psbt.cpp +++ b/src/node/psbt.cpp @@ -18,6 +18,13 @@ PSBTAnalysis AnalyzePSBT(PartiallySignedTransaction psbtx) // Go through each input and build status PSBTAnalysis result; + std::optional unsigned_tx = psbtx.GetUnsignedTx(); + if (!unsigned_tx) { + result.SetInvalid("PSBT cannot be made into a valid transaction"); + return result; + } + CMutableTransaction& mtx = *unsigned_tx; + bool calc_fee = true; CAmount in_amt = 0; @@ -116,7 +123,6 @@ PSBTAnalysis AnalyzePSBT(PartiallySignedTransaction psbtx) result.fee = fee; // Estimate the size - CMutableTransaction mtx(*psbtx.tx); CCoinsViewCache view{&CoinsViewEmpty::Get()}; bool success = true; diff --git a/src/psbt.cpp b/src/psbt.cpp index d7320682b27..a87079610d6 100644 --- a/src/psbt.cpp +++ b/src/psbt.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include