1 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `ScriptContext` trait in crate `bdk`."><meta name="keywords" content="rust, rustlang, rust-lang, ScriptContext"><title>bdk::descriptor::ScriptContext - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css" disabled ><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled ><script id="default-settings"></script><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="icon" type="image/svg+xml" href="../../favicon.svg">
2 <link rel="alternate icon" type="image/png" href="../../favicon-16x16.png">
3 <link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc trait"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../bdk/index.html'><div class='logo-container rust-logo'><img src='../../rust-logo.png' alt='logo'></div></a><p class="location">Trait ScriptContext</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#required-methods">Required Methods</a><div class="sidebar-links"><a href="#tymethod.check_terminal_non_malleable">check_terminal_non_malleable</a><a href="#tymethod.max_satisfaction_size">max_satisfaction_size</a></div><a class="sidebar-title" href="#provided-methods">Provided Methods</a><div class="sidebar-links"><a href="#method.check_global_consensus_validity">check_global_consensus_validity</a><a href="#method.check_global_policy_validity">check_global_policy_validity</a><a href="#method.check_global_validity">check_global_validity</a><a href="#method.check_local_consensus_validity">check_local_consensus_validity</a><a href="#method.check_local_policy_validity">check_local_policy_validity</a><a href="#method.check_local_validity">check_local_validity</a><a href="#method.check_witness">check_witness</a><a href="#method.other_top_level_checks">other_top_level_checks</a><a href="#method.top_level_checks">top_level_checks</a><a href="#method.top_level_type_check">top_level_type_check</a></div><a class="sidebar-title" href="#foreign-impls">Implementations on Foreign Types</a><div class="sidebar-links"><a href="#impl-ScriptContext-for-Bare">Bare</a></div><a class="sidebar-title" href="#implementors">Implementors</a></div><p class="location"><a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a></p><script>window.sidebarCurrent = {name: "ScriptContext", ty: "trait", relpath: ""};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices" role="menu"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><button type="button" class="help-button">?</button>
4 <a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class="fqn"><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></span><span class="in-band">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="trait" href="">ScriptContext</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class="rust trait">pub trait ScriptContext: Sealed + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><Self> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Ord.html" title="trait core::cmp::Ord">Ord</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialOrd.html" title="trait core::cmp::PartialOrd">PartialOrd</a><Self> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> {
5 pub fn <a href="#tymethod.check_terminal_non_malleable" class="fnname">check_terminal_non_malleable</a><Pk, Ctx>(<br> _frag: &<a class="enum" href="../../bdk/descriptor/enum.Terminal.html" title="enum bdk::descriptor::Terminal">Terminal</a><Pk, Ctx><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError><br> <span class="where">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a></span>;
6 <div class="item-spacer"></div> pub fn <a href="#tymethod.max_satisfaction_size" class="fnname">max_satisfaction_size</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>><br> <span class="where">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a></span>;
8 pub fn <a href="#method.check_witness" class="fnname">check_witness</a><Pk, Ctx>(<br> _witness: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&[</a><a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError><br> <span class="where">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a></span>,
10 <div class="item-spacer"></div> pub fn <a href="#method.check_global_consensus_validity" class="fnname">check_global_consensus_validity</a><Pk, Ctx>(<br> _ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError><br> <span class="where">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a></span>,
12 <div class="item-spacer"></div> pub fn <a href="#method.check_global_policy_validity" class="fnname">check_global_policy_validity</a><Pk, Ctx>(<br> _ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError><br> <span class="where">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a></span>,
14 <div class="item-spacer"></div> pub fn <a href="#method.check_local_consensus_validity" class="fnname">check_local_consensus_validity</a><Pk, Ctx>(<br> _ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError><br> <span class="where">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a></span>,
16 <div class="item-spacer"></div> pub fn <a href="#method.check_local_policy_validity" class="fnname">check_local_policy_validity</a><Pk, Ctx>(<br> _ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError><br> <span class="where">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a></span>,
18 <div class="item-spacer"></div> pub fn <a href="#method.check_global_validity" class="fnname">check_global_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError><br> <span class="where">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a></span>,
20 <div class="item-spacer"></div> pub fn <a href="#method.check_local_validity" class="fnname">check_local_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError><br> <span class="where">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a></span>,
22 <div class="item-spacer"></div> pub fn <a href="#method.top_level_type_check" class="fnname">top_level_type_check</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, Error><br> <span class="where">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a></span>,
24 <div class="item-spacer"></div> pub fn <a href="#method.other_top_level_checks" class="fnname">other_top_level_checks</a><Pk, Ctx>(<br> _ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, Error><br> <span class="where">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a></span>,
26 <div class="item-spacer"></div> pub fn <a href="#method.top_level_checks" class="fnname">top_level_checks</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, Error><br> <span class="where">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a></span>,
28 }</pre></div><div class="docblock"><p>The ScriptContext for Miniscript. Additional type information associated with
29 miniscript that is used for carrying out checks that dependent on the
30 context under which the script is used.
31 For example, disallowing uncompressed keys in Segwit context</p>
32 </div><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><h3 id="tymethod.check_terminal_non_malleable" class="method"><code>pub fn <a href="#tymethod.check_terminal_non_malleable" class="fnname">check_terminal_non_malleable</a><Pk, Ctx>(<br> _frag: &<a class="enum" href="../../bdk/descriptor/enum.Terminal.html" title="enum bdk::descriptor::Terminal">Terminal</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h3><div class="docblock"><p>Depending on ScriptContext, fragments can be malleable. For Example,
33 under Legacy context, PkH is malleable because it is possible to
34 estimate the cost of satisfaction because of compressed keys
35 This is currently only used in compiler code for removing malleable
37 This does NOT recursively check if the children of the fragment are
38 valid or not. Since the compilation proceeds in a leaf to root fashion,
39 a recursive check is unnecessary.</p>
40 </div><h3 id="tymethod.max_satisfaction_size" class="method"><code>pub fn <a href="#tymethod.max_satisfaction_size" class="fnname">max_satisfaction_size</a><Pk, Ctx>(ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h3><div class="docblock"><p>Depending on script context, the size of a satifaction witness may slightly differ.</p>
41 </div></div><span class="loading-content">Loading content...</span><h2 id="provided-methods" class="small-section-header">Provided methods<a href="#provided-methods" class="anchor"></a></h2><div class="methods"><h3 id="method.check_witness" class="method"><code>pub fn <a href="#method.check_witness" class="fnname">check_witness</a><Pk, Ctx>(<br> _witness: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&[</a><a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h3><div class="docblock"><p>Check whether the given satisfaction is valid under the ScriptContext
42 For example, segwit satisfactions may fail if the witness len is more
43 3600 or number of stack elements are more than 100.</p>
44 </div><h3 id="method.check_global_consensus_validity" class="method"><code>pub fn <a href="#method.check_global_consensus_validity" class="fnname">check_global_consensus_validity</a><Pk, Ctx>(<br> _ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h3><div class="docblock"><p>Depending on script Context, some of the Terminals might not
45 be valid under the current consensus rules.
46 Or some of the script resource limits may have been exceeded.
47 These miniscripts would never be accepted by the Bitcoin network and hence
48 it is safe to discard them
49 For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
50 uncompressed public keys are non-standard and thus invalid.
51 In LegacyP2SH context, scripts above 520 bytes are invalid.
52 Post Tapscript upgrade, this would have to consider other nodes.
53 This does <em>NOT</em> recursively check the miniscript fragments.</p>
54 </div><h3 id="method.check_global_policy_validity" class="method"><code>pub fn <a href="#method.check_global_policy_validity" class="fnname">check_global_policy_validity</a><Pk, Ctx>(<br> _ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h3><div class="docblock"><p>Depending on script Context, some of the script resource limits
55 may have been exceeded under the current bitcoin core policy rules
56 These miniscripts would never be accepted by the Bitcoin network and hence
57 it is safe to discard them. (unless explicitly disabled by non-standard flag)
58 For example, in Segwit Context with MiniscriptKey as bitcoin::PublicKey
59 scripts over 3600 bytes are invalid.
60 Post Tapscript upgrade, this would have to consider other nodes.
61 This does <em>NOT</em> recursively check the miniscript fragments.</p>
62 </div><h3 id="method.check_local_consensus_validity" class="method"><code>pub fn <a href="#method.check_local_consensus_validity" class="fnname">check_local_consensus_validity</a><Pk, Ctx>(<br> _ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h3><div class="docblock"><p>Consensus rules at the Miniscript satisfaction time.
63 It is possible that some paths of miniscript may exceed resource limits
64 and our current satisfier and lifting analysis would not work correctly.
65 For example, satisfaction path(Legacy/Segwitv0) may require more than 201 opcodes.</p>
66 </div><h3 id="method.check_local_policy_validity" class="method"><code>pub fn <a href="#method.check_local_policy_validity" class="fnname">check_local_policy_validity</a><Pk, Ctx>(<br> _ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h3><div class="docblock"><p>Policy rules at the Miniscript satisfaction time.
67 It is possible that some paths of miniscript may exceed resource limits
68 and our current satisfier and lifting analysis would not work correctly.
69 For example, satisfaction path in Legacy context scriptSig more
71 </div><h3 id="method.check_global_validity" class="method"><code>pub fn <a href="#method.check_global_validity" class="fnname">check_global_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h3><div class="docblock"><p>Check the consensus + policy(if not disabled) rules that are not based
73 </div><h3 id="method.check_local_validity" class="method"><code>pub fn <a href="#method.check_local_validity" class="fnname">check_local_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h3><div class="docblock"><p>Check the consensus + policy(if not disabled) rules including the
74 ones for satisfaction</p>
75 </div><h3 id="method.top_level_type_check" class="method"><code>pub fn <a href="#method.top_level_type_check" class="fnname">top_level_type_check</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, Error> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h3><div class="docblock"><p>Check whether the top-level is type B</p>
76 </div><h3 id="method.other_top_level_checks" class="method"><code>pub fn <a href="#method.other_top_level_checks" class="fnname">other_top_level_checks</a><Pk, Ctx>(<br> _ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, Error> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h3><div class="docblock"><p>Other top level checks that are context specific</p>
77 </div><h3 id="method.top_level_checks" class="method"><code>pub fn <a href="#method.top_level_checks" class="fnname">top_level_checks</a><Pk, Ctx>(ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, Error> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h3><div class="docblock"><p>Check top level consensus rules.</p>
78 </div></div><span class="loading-content">Loading content...</span><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor"></a></h2><h3 id="impl-ScriptContext-for-Bare" class="impl"><code class="in-band">impl <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> for Bare</code><a href="#impl-ScriptContext-for-Bare" class="anchor"></a></h3><div class="impl-items"><h4 id="method.check_terminal_non_malleable" class="method hidden"><code>pub fn <a href="#method.check_terminal_non_malleable" class="fnname">check_terminal_non_malleable</a><Pk, Ctx>(<br> _frag: &<a class="enum" href="../../bdk/descriptor/enum.Terminal.html" title="enum bdk::descriptor::Terminal">Terminal</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.check_global_consensus_validity-1" class="method hidden"><code>pub fn <a href="#method.check_global_consensus_validity" class="fnname">check_global_consensus_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.check_local_consensus_validity-1" class="method hidden"><code>pub fn <a href="#method.check_local_consensus_validity" class="fnname">check_local_consensus_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.other_top_level_checks-1" class="method hidden"><code>pub fn <a href="#method.other_top_level_checks" class="fnname">other_top_level_checks</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, Error> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.max_satisfaction_size" class="method hidden"><code>pub fn <a href="#method.max_satisfaction_size" class="fnname">max_satisfaction_size</a><Pk, Ctx>(ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4></div><span class="loading-content">Loading content...</span><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><h3 id="impl-ScriptContext" class="impl"><code class="in-band">impl ScriptContext for <a class="enum" href="../../bdk/descriptor/enum.Legacy.html" title="enum bdk::descriptor::Legacy">Legacy</a></code><a href="#impl-ScriptContext" class="anchor"></a></h3><div class="impl-items"><h4 id="method.check_terminal_non_malleable-1" class="method hidden"><code>pub fn <a href="#method.check_terminal_non_malleable-1" class="fnname">check_terminal_non_malleable</a><Pk, Ctx>(<br> frag: &<a class="enum" href="../../bdk/descriptor/enum.Terminal.html" title="enum bdk::descriptor::Terminal">Terminal</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.check_witness-1" class="method hidden"><code>pub fn <a href="#method.check_witness-1" class="fnname">check_witness</a><Pk, Ctx>(<br> witness: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&[</a><a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.check_global_consensus_validity-2" class="method hidden"><code>pub fn <a href="#method.check_global_consensus_validity-2" class="fnname">check_global_consensus_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.check_local_consensus_validity-2" class="method hidden"><code>pub fn <a href="#method.check_local_consensus_validity-2" class="fnname">check_local_consensus_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.check_local_policy_validity-1" class="method hidden"><code>pub fn <a href="#method.check_local_policy_validity-1" class="fnname">check_local_policy_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.max_satisfaction_size-1" class="method hidden"><code>pub fn <a href="#method.max_satisfaction_size-1" class="fnname">max_satisfaction_size</a><Pk, Ctx>(ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4></div><h3 id="impl-ScriptContext-1" class="impl"><code class="in-band">impl ScriptContext for <a class="enum" href="../../bdk/descriptor/enum.Segwitv0.html" title="enum bdk::descriptor::Segwitv0">Segwitv0</a></code><a href="#impl-ScriptContext-1" class="anchor"></a></h3><div class="impl-items"><h4 id="method.check_terminal_non_malleable-2" class="method hidden"><code>pub fn <a href="#method.check_terminal_non_malleable-2" class="fnname">check_terminal_non_malleable</a><Pk, Ctx>(<br> _frag: &<a class="enum" href="../../bdk/descriptor/enum.Terminal.html" title="enum bdk::descriptor::Terminal">Terminal</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.check_witness-2" class="method hidden"><code>pub fn <a href="#method.check_witness-2" class="fnname">check_witness</a><Pk, Ctx>(<br> witness: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&[</a><a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.check_global_consensus_validity-3" class="method hidden"><code>pub fn <a href="#method.check_global_consensus_validity-3" class="fnname">check_global_consensus_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.check_local_consensus_validity-3" class="method hidden"><code>pub fn <a href="#method.check_local_consensus_validity-3" class="fnname">check_local_consensus_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.check_global_policy_validity-1" class="method hidden"><code>pub fn <a href="#method.check_global_policy_validity-1" class="fnname">check_global_policy_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.check_local_policy_validity-2" class="method hidden"><code>pub fn <a href="#method.check_local_policy_validity-2" class="fnname">check_local_policy_validity</a><Pk, Ctx>(<br> ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx><br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, ScriptContextError> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4><h4 id="method.max_satisfaction_size-2" class="method hidden"><code>pub fn <a href="#method.max_satisfaction_size-2" class="fnname">max_satisfaction_size</a><Pk, Ctx>(ms: &<a class="struct" href="../../bdk/descriptor/struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><Pk, Ctx>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>> <span class="where fmt-newline">where<br> Ctx: <a class="trait" href="../../bdk/keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a>,<br> Pk: <a class="trait" href="../../bdk/descriptor/trait.MiniscriptKey.html" title="trait bdk::descriptor::MiniscriptKey">MiniscriptKey</a>, </span></code></h4></div></div><span class="loading-content">Loading content...</span><script type="text/javascript" src="../../implementors/miniscript/miniscript/context/trait.ScriptContext.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../";window.currentCrate = "bdk";</script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>