From 0cb884e6df8d9037ec8e85412a82fcb79df98307 Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Wed, 18 Mar 2026 13:54:16 -0700 Subject: [PATCH] psbt: Fill hash preimages and taproot builder from SignatureData Filling these fields was missing. --- src/psbt.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/psbt.cpp b/src/psbt.cpp index cfc720b06d9..3086ae7775e 100644 --- a/src/psbt.cpp +++ b/src/psbt.cpp @@ -210,6 +210,18 @@ void PSBTInput::FromSignatureData(const SignatureData& sigdata) for (const auto& [agg_key_lh, psigs] : sigdata.musig2_partial_sigs) { m_musig2_partial_sigs[agg_key_lh].insert(psigs.begin(), psigs.end()); } + for (const auto& [hash, preimage] : sigdata.ripemd160_preimages) { + ripemd160_preimages.emplace(std::vector(hash.begin(), hash.end()), preimage); + } + for (const auto& [hash, preimage] : sigdata.sha256_preimages) { + sha256_preimages.emplace(std::vector(hash.begin(), hash.end()), preimage); + } + for (const auto& [hash, preimage] : sigdata.hash160_preimages) { + hash160_preimages.emplace(std::vector(hash.begin(), hash.end()), preimage); + } + for (const auto& [hash, preimage] : sigdata.hash256_preimages) { + hash256_preimages.emplace(std::vector(hash.begin(), hash.end()), preimage); + } } void PSBTInput::Merge(const PSBTInput& input) @@ -268,6 +280,7 @@ void PSBTOutput::FillSignatureData(SignatureData& sigdata) const sigdata.tr_spenddata.internal_key = m_tap_internal_key; sigdata.tr_spenddata.Merge(spenddata); + sigdata.tr_builder = builder; } for (const auto& [pubkey, leaf_origin] : m_tap_bip32_paths) { sigdata.taproot_misc_pubkeys.emplace(pubkey, leaf_origin);