descriptors: Fix meaning of any_key_parsed

Invert any_key_parsed so that the name matches the behavior.
This commit is contained in:
Ava Chow
2025-07-30 16:34:36 -07:00
parent 5ee4e79669
commit 2320184d0e

View File

@@ -1843,20 +1843,20 @@ std::vector<std::unique_ptr<PubkeyProvider>> ParsePubkey(uint32_t& key_exp_index
bool any_ranged = false;
bool all_bip32 = true;
std::vector<std::vector<std::unique_ptr<PubkeyProvider>>> providers;
bool any_key_parsed = true;
bool any_key_parsed = false;
size_t max_multipath_len = 0;
while (expr.size()) {
if (!any_key_parsed && !Const(",", expr)) {
if (any_key_parsed && !Const(",", expr)) {
error = strprintf("musig(): expected ',', got '%c'", expr[0]);
return {};
}
any_key_parsed = false;
auto arg = Expr(expr);
auto pk = ParsePubkey(key_exp_index, arg, ParseScriptContext::MUSIG, out, error);
if (pk.empty()) {
error = strprintf("musig(): %s", error);
return {};
}
any_key_parsed = true;
any_ranged = any_ranged || pk.at(0)->IsRange();
all_bip32 = all_bip32 && pk.at(0)->IsBIP32();
@@ -1866,7 +1866,7 @@ std::vector<std::unique_ptr<PubkeyProvider>> ParsePubkey(uint32_t& key_exp_index
providers.emplace_back(std::move(pk));
key_exp_index++;
}
if (any_key_parsed) {
if (!any_key_parsed) {
error = "musig(): Must contain key expressions";
return {};
}