diff --git a/src/psbt.cpp b/src/psbt.cpp index a6df7b06ec..3bb103101f 100644 --- a/src/psbt.cpp +++ b/src/psbt.cpp @@ -383,3 +383,11 @@ bool DecodeRawPSBT(PartiallySignedTransaction& psbt, const std::string& tx_data, } return true; } + +uint32_t PartiallySignedTransaction::GetVersion() const +{ + if (m_version != nullopt) { + return *m_version; + } + return 0; +} diff --git a/src/psbt.h b/src/psbt.h index 9921d84b00..d026575437 100644 --- a/src/psbt.h +++ b/src/psbt.h @@ -402,6 +402,7 @@ struct PartiallySignedTransaction Optional m_version; bool IsNull() const; + uint32_t GetVersion() const; /** Merge psbt into this. The two psbts must have the same underlying CTransaction (i.e. the * same actual Bitcoin transaction.) Returns true if the merge succeeded, false otherwise. */ @@ -433,7 +434,7 @@ struct PartiallySignedTransaction SerializeToVector(os, *tx); // PSBT version - if (m_version != nullopt && *m_version > 0) { + if (GetVersion() > 0) { SerializeToVector(s, CompactSizeWriter(PSBT_GLOBAL_VERSION)); SerializeToVector(s, *m_version); }