Skip to content

Commit 6cff827

Browse files
committed
sign: Use sigdata taproot spenddata when signing
The taproot spenddata stored in a sigdata is the combination of data existing previously (e.g. in a PSBT) and the data stored in a SigningProvider. In order to use the external data when signing, we need to be using the sigdata's spenddata.
1 parent 5f12fe3 commit 6cff827

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/script/sign.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,16 +230,16 @@ static bool SignTaproot(const SigningProvider& provider, const BaseSignatureCrea
230230
// Try key path spending.
231231
{
232232
KeyOriginInfo info;
233-
if (provider.GetKeyOriginByXOnly(spenddata.internal_key, info)) {
234-
auto it = sigdata.taproot_misc_pubkeys.find(spenddata.internal_key);
233+
if (provider.GetKeyOriginByXOnly(sigdata.tr_spenddata.internal_key, info)) {
234+
auto it = sigdata.taproot_misc_pubkeys.find(sigdata.tr_spenddata.internal_key);
235235
if (it == sigdata.taproot_misc_pubkeys.end()) {
236-
sigdata.taproot_misc_pubkeys.emplace(spenddata.internal_key, std::make_pair(std::set<uint256>(), info));
236+
sigdata.taproot_misc_pubkeys.emplace(sigdata.tr_spenddata.internal_key, std::make_pair(std::set<uint256>(), info));
237237
}
238238
}
239239

240240
std::vector<unsigned char> sig;
241241
if (sigdata.taproot_key_path_sig.size() == 0) {
242-
if (creator.CreateSchnorrSig(provider, sig, spenddata.internal_key, nullptr, &spenddata.merkle_root, SigVersion::TAPROOT)) {
242+
if (creator.CreateSchnorrSig(provider, sig, sigdata.tr_spenddata.internal_key, nullptr, &sigdata.tr_spenddata.merkle_root, SigVersion::TAPROOT)) {
243243
sigdata.taproot_key_path_sig = sig;
244244
}
245245
}

0 commit comments

Comments
 (0)