aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAntoine Poinsot <darosior@protonmail.com>2023-09-21 16:43:52 +0200
committerAntoine Poinsot <darosior@protonmail.com>2023-10-08 02:43:16 +0200
commit892436c7d575ffdb9bada5fe4e62d6c1f5053c42 (patch)
tree4b89d94109c406a909ca446cf6365bcab718c22c /src
parente5aaa3d77af7459b37c0c4a37eb22c5fd0cda3e1 (diff)
downloadbitcoin-892436c7d575ffdb9bada5fe4e62d6c1f5053c42.tar.xz
miniscript: sanity asserts context in ComputeType
Diffstat (limited to 'src')
-rw-r--r--src/script/miniscript.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/script/miniscript.cpp b/src/script/miniscript.cpp
index 15e0778ef5..c133f88709 100644
--- a/src/script/miniscript.cpp
+++ b/src/script/miniscript.cpp
@@ -71,8 +71,10 @@ Type ComputeType(Fragment fragment, Type x, Type y, Type z, const std::vector<Ty
assert(n_keys == 1);
} else if (fragment == Fragment::MULTI) {
assert(n_keys >= 1 && n_keys <= MAX_PUBKEYS_PER_MULTISIG);
+ assert(!IsTapscript(ms_ctx));
} else if (fragment == Fragment::MULTI_A) {
assert(n_keys >= 1 && n_keys <= MAX_PUBKEYS_PER_MULTI_A);
+ assert(IsTapscript(ms_ctx));
} else {
assert(n_keys == 0);
}
@@ -215,8 +217,12 @@ Type ComputeType(Fragment fragment, Type x, Type y, Type z, const std::vector<Ty
((x << "h"_mst) && (y << "g"_mst)) ||
((x << "i"_mst) && (y << "j"_mst)) ||
((x << "j"_mst) && (y << "i"_mst)))); // k=k_x*k_y*k_z* !(g_x*h_y + h_x*g_y + i_x*j_y + j_x*i_y)
- case Fragment::MULTI: return "Bnudemsk"_mst;
- case Fragment::MULTI_A: return "Budemsk"_mst;
+ case Fragment::MULTI: {
+ return "Bnudemsk"_mst;
+ }
+ case Fragment::MULTI_A: {
+ return "Budemsk"_mst;
+ }
case Fragment::THRESH: {
bool all_e = true;
bool all_m = true;