aboutsummaryrefslogtreecommitdiff
path: root/src/script/miniscript.cpp
diff options
context:
space:
mode:
authorAntoine Poinsot <darosior@protonmail.com>2023-02-07 19:40:03 +0100
committerAntoine Poinsot <darosior@protonmail.com>2023-10-08 02:43:18 +0200
commitce8845f5dda403461178c08e7363978fda423999 (patch)
tree0482f64006e49ef4a4977b28a46d4a1db812a8c9 /src/script/miniscript.cpp
parentf4f978d38ee4920c5cd0de5d93b407ec37bfd9c0 (diff)
miniscript: account for keys as being 32 bytes under Taproot context
Diffstat (limited to 'src/script/miniscript.cpp')
-rw-r--r--src/script/miniscript.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/script/miniscript.cpp b/src/script/miniscript.cpp
index 03158c5d8a..344a81bdf0 100644
--- a/src/script/miniscript.cpp
+++ b/src/script/miniscript.cpp
@@ -258,11 +258,12 @@ Type ComputeType(Fragment fragment, Type x, Type y, Type z, const std::vector<Ty
assert(false);
}
-size_t ComputeScriptLen(Fragment fragment, Type sub0typ, size_t subsize, uint32_t k, size_t n_subs, size_t n_keys) {
+size_t ComputeScriptLen(Fragment fragment, Type sub0typ, size_t subsize, uint32_t k, size_t n_subs,
+ size_t n_keys, MiniscriptContext ms_ctx) {
switch (fragment) {
case Fragment::JUST_1:
case Fragment::JUST_0: return 1;
- case Fragment::PK_K: return 34;
+ case Fragment::PK_K: return IsTapscript(ms_ctx) ? 33 : 34;
case Fragment::PK_H: return 3 + 21;
case Fragment::OLDER:
case Fragment::AFTER: return 1 + BuildScript(k).size();