refactor(miniscript): Remove Node::subs mutability

This commit is contained in:
Hodlinator
2025-06-24 09:46:52 +02:00
parent c6f798b222
commit e55b23c170
2 changed files with 4 additions and 4 deletions

View File

@@ -191,11 +191,11 @@ inline consteval Type operator""_mst(const char* c, size_t l)
using Opcode = std::pair<opcodetype, std::vector<unsigned char>>;
template<typename Key> class Node;
template<typename Key> using NodeRef = std::unique_ptr<const Node<Key>>;
template<typename Key> using NodeRef = std::unique_ptr<Node<Key>>;
//! Construct a miniscript node as a unique_ptr.
template<typename Key, typename... Args>
NodeRef<Key> MakeNodeRef(Args&&... args) { return std::make_unique<const Node<Key>>(std::forward<Args>(args)...); }
NodeRef<Key> MakeNodeRef(Args&&... args) { return std::make_unique<Node<Key>>(std::forward<Args>(args)...); }
//! Unordered traversal of a miniscript node tree.
template <typename Key, std::invocable<const Node<Key>&> Fn>
@@ -545,7 +545,7 @@ class Node
//! The data bytes in this expression (only for HASH160/HASH256/SHA256/RIPEMD160).
std::vector<unsigned char> data;
//! Subexpressions (for WRAP_*/AND_*/OR_*/ANDOR/THRESH)
mutable std::vector<NodeRef<Key>> subs;
std::vector<NodeRef<Key>> subs;
//! The Script context for this node. Either P2WSH or Tapscript.
MiniscriptContext m_script_ctx;