From 82deb69111f15db60aa364db9b06931918691564 Mon Sep 17 00:00:00 2001 From: nebula-21 <53496928+nebula-21@users.noreply.github.com> Date: Fri, 4 Sep 2026 19:49:07 +0200 Subject: [PATCH] PSBT: Make input/output `Merge()` methods return void --- src/psbt.cpp | 16 ++++------------ src/psbt.h | 4 ++-- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/psbt.cpp b/src/psbt.cpp index c9f0311634e..e222d41cb09 100644 --- a/src/psbt.cpp +++ b/src/psbt.cpp @@ -47,14 +47,10 @@ bool PartiallySignedTransaction::Merge(const PartiallySignedTransaction& psbt) } for (unsigned int i = 0; i < inputs.size(); ++i) { - if (!inputs[i].Merge(psbt.inputs[i])) { - return false; - } + inputs[i].Merge(psbt.inputs[i]); } for (unsigned int i = 0; i < outputs.size(); ++i) { - if (!outputs[i].Merge(psbt.outputs[i])) { - return false; - } + outputs[i].Merge(psbt.outputs[i]); } MergeGlobalXPubs(psbt); if (fallback_locktime == std::nullopt && psbt.fallback_locktime != std::nullopt) fallback_locktime = psbt.fallback_locktime; @@ -421,7 +417,7 @@ void PSBTInput::FromSignatureData(const SignatureData& sigdata) } } -bool PSBTInput::Merge(const PSBTInput& input) +void PSBTInput::Merge(const PSBTInput& input) { if (!non_witness_utxo && input.non_witness_utxo) non_witness_utxo = input.non_witness_utxo; if (witness_utxo.IsNull() && !input.witness_utxo.IsNull()) { @@ -467,8 +463,6 @@ bool PSBTInput::Merge(const PSBTInput& input) if (sequence == std::nullopt && input.sequence != std::nullopt) sequence = input.sequence; if (time_locktime == std::nullopt && input.time_locktime != std::nullopt) time_locktime = input.time_locktime; if (height_locktime == std::nullopt && input.height_locktime != std::nullopt) height_locktime = input.height_locktime; - - return true; } bool PSBTInput::HasSignatures() const @@ -535,7 +529,7 @@ void PSBTOutput::FromSignatureData(const SignatureData& sigdata) m_musig2_participants.insert(sigdata.musig2_pubkeys.begin(), sigdata.musig2_pubkeys.end()); } -bool PSBTOutput::Merge(const PSBTOutput& output) +void PSBTOutput::Merge(const PSBTOutput& output) { hd_keypaths.insert(output.hd_keypaths.begin(), output.hd_keypaths.end()); m_proprietary.insert(output.m_proprietary.begin(), output.m_proprietary.end()); @@ -547,8 +541,6 @@ bool PSBTOutput::Merge(const PSBTOutput& output) if (m_tap_internal_key.IsNull() && !output.m_tap_internal_key.IsNull()) m_tap_internal_key = output.m_tap_internal_key; if (m_tap_tree.empty() && !output.m_tap_tree.empty()) m_tap_tree = output.m_tap_tree; m_musig2_participants.insert(output.m_musig2_participants.begin(), output.m_musig2_participants.end()); - - return true; } bool PSBTInputSigned(const PSBTInput& input) diff --git a/src/psbt.h b/src/psbt.h index fc627494490..467dffb0ca9 100644 --- a/src/psbt.h +++ b/src/psbt.h @@ -324,7 +324,7 @@ public: void FillSignatureData(SignatureData& sigdata) const; void FromSignatureData(const SignatureData& sigdata); - [[nodiscard]] bool Merge(const PSBTInput& input); + void Merge(const PSBTInput& input); uint32_t GetVersion() const { return m_psbt_version; } COutPoint GetOutPoint() const; /** @@ -958,7 +958,7 @@ public: void FillSignatureData(SignatureData& sigdata) const; void FromSignatureData(const SignatureData& sigdata); - [[nodiscard]] bool Merge(const PSBTOutput& output); + void Merge(const PSBTOutput& output); uint32_t GetVersion() const { return m_psbt_version; } explicit PSBTOutput(uint32_t psbt_version, CAmount amount, const CScript& script)