<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div>
</a><h2 class="location"><a href="#">Module descriptor</a></h2><div class="sidebar-elems"><div class="block items"><ul><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li><li><a href="#types">Type Definitions</a></li></ul></div><div id="sidebar-vars" data-name="descriptor" data-ty="mod" data-relpath="./"></div><script defer src="./sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../bdk/index.html">
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
- <h1 class="fqn"><span class="in-band">Module <a href="../index.html">bdk</a>::<wbr><a class="mod" href="#">descriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#12-849" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Descriptors</p>
+ <h1 class="fqn"><span class="in-band">Module <a href="../index.html">bdk</a>::<wbr><a class="mod" href="#">descriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#12-888" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Descriptors</p>
<p>This module contains generic utilities to work with descriptors, plus some re-exported types
from [<code>miniscript</code>].</p>
</div></details><h2 id="reexports" class="small-section-header"><a href="#reexports">Re-exports</a></h2>
</a><h2 class="location"><a href="#">DescriptorTemplateOut</a></h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-IntoWalletDescriptor">IntoWalletDescriptor</a></div></div><h2 class="location">In <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a></h2><div id="sidebar-vars" data-name="DescriptorTemplateOut" data-ty="type" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../../bdk/index.html">
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
<h1 class="fqn"><span class="in-band">Type Definition <a href="../../index.html">bdk</a>::<wbr><a href="../index.html">descriptor</a>::<wbr><a href="index.html">template</a>::<wbr><a class="type" href="#">DescriptorTemplateOut</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../../src/bdk/descriptor/template.rs.html#29" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust typedef"><code>pub type DescriptorTemplateOut = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="type" href="../type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a>, <a class="type" href="../../keys/type.ValidNetworks.html" title="type bdk::keys::ValidNetworks">ValidNetworks</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Type alias for the return type of <a href="trait.DescriptorTemplate.html" title="DescriptorTemplate"><code>DescriptorTemplate</code></a>, <a href="../../macro.descriptor.html"><code>descriptor!</code></a> and others</p>
-</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-IntoWalletDescriptor" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/bdk/descriptor/mod.rs.html#202-252" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/bdk/descriptor/mod.rs.html#203-251" title="goto source code">source</a></div><a href="#method.into_wallet_descriptor" class="anchor"></a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> _secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="../type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></summary><div class='docblock'><p>Convert to wallet descriptor</p>
+</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-IntoWalletDescriptor" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/bdk/descriptor/mod.rs.html#204-274" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="../trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="type" href="type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../../src/bdk/descriptor/mod.rs.html#205-273" title="goto source code">source</a></div><a href="#method.into_wallet_descriptor" class="anchor"></a><h4 class="code-header">fn <a href="../trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> _secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="../type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="../error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></summary><div class='docblock'><p>Convert to wallet descriptor</p>
</div></details></div></details></div></section><section id="search" class="content hidden"></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="bdk" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.60.0-nightly (51126be1b 2022-01-24)" ></div>
</body></html>
\ No newline at end of file
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div>
</a><h2 class="location"><a href="#">ExtractPolicy</a></h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><div class="sidebar-links"><a href="#tymethod.extract_policy">extract_policy</a></div><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div><h2 class="location">In <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a></h2><div id="sidebar-vars" data-name="ExtractPolicy" data-ty="trait" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../bdk/index.html">
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
- <h1 class="fqn"><span class="in-band">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="trait" href="#">ExtractPolicy</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#305-313" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust trait"><code>pub trait ExtractPolicy {
+ <h1 class="fqn"><span class="in-band">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="trait" href="#">ExtractPolicy</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#327-335" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust trait"><code>pub trait ExtractPolicy {
fn <a href="#tymethod.extract_policy" class="fnname">extract_policy</a>(<br> &self, <br> signers: &<a class="struct" href="../wallet/signer/struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a>, <br> psbt: <a class="enum" href="policy/enum.BuildSatisfaction.html" title="enum bdk::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'_>, <br> secp: &Secp256k1<All><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="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="policy/struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a>>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>>;
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait implemented on <a href="enum.Descriptor.html" title="Descriptor"><code>Descriptor</code></a>s to add a method to extract the spending <a href="policy/index.html" title="policy"><code>policy</code></a></p>
-</div></details><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.extract_policy" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#307-312" title="goto source code">source</a></div><h4 class="code-header">fn <a href="#tymethod.extract_policy" class="fnname">extract_policy</a>(<br> &self, <br> signers: &<a class="struct" href="../wallet/signer/struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a>, <br> psbt: <a class="enum" href="policy/enum.BuildSatisfaction.html" title="enum bdk::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'_>, <br> secp: &Secp256k1<All><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="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="policy/struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a>>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></summary><div class="docblock"><p>Extract the spending <a href="policy/index.html" title="policy"><code>policy</code></a></p>
+</div></details><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.extract_policy" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#329-334" title="goto source code">source</a></div><h4 class="code-header">fn <a href="#tymethod.extract_policy" class="fnname">extract_policy</a>(<br> &self, <br> signers: &<a class="struct" href="../wallet/signer/struct.SignersContainer.html" title="struct bdk::wallet::signer::SignersContainer">SignersContainer</a>, <br> psbt: <a class="enum" href="policy/enum.BuildSatisfaction.html" title="enum bdk::descriptor::policy::BuildSatisfaction">BuildSatisfaction</a><'_>, <br> secp: &Secp256k1<All><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="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="policy/struct.Policy.html" title="struct bdk::descriptor::policy::Policy">Policy</a>>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></summary><div class="docblock"><p>Extract the spending <a href="policy/index.html" title="policy"><code>policy</code></a></p>
</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><div id="impl-ExtractPolicy" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/policy.rs.html#1050-1131" title="goto source code">source</a></div><a href="#impl-ExtractPolicy" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.ExtractPolicy.html" title="trait bdk::descriptor::ExtractPolicy">ExtractPolicy</a> for <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>></h3></div><div id="impl-ExtractPolicy-1" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/policy.rs.html#883-1016" title="goto source code">source</a></div><a href="#impl-ExtractPolicy-1" class="anchor"></a><h3 class="code-header in-band">impl<Ctx: <a class="trait" href="../keys/trait.ScriptContext.html" title="trait bdk::keys::ScriptContext">ScriptContext</a> + 'static> <a class="trait" href="trait.ExtractPolicy.html" title="trait bdk::descriptor::ExtractPolicy">ExtractPolicy</a> for <a class="struct" href="struct.Miniscript.html" title="struct bdk::descriptor::Miniscript">Miniscript</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>, Ctx></h3></div></div><script type="text/javascript" src="../../implementors/bdk/descriptor/trait.ExtractPolicy.js" async></script></section><section id="search" class="content hidden"></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="bdk" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.60.0-nightly (51126be1b 2022-01-24)" ></div>
</body></html>
\ No newline at end of file
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div>
</a><h2 class="location"><a href="#">IntoWalletDescriptor</a></h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><div class="sidebar-links"><a href="#tymethod.into_wallet_descriptor">into_wallet_descriptor</a></div><h3 class="sidebar-title"><a href="#foreign-impls">Implementations on Foreign Types</a></h3><div class="sidebar-links"><a href="#impl-IntoWalletDescriptor-for-%26String">&String</a><a href="#impl-IntoWalletDescriptor-for-%26str">&str</a><a href="#impl-IntoWalletDescriptor-for-(ExtendedDescriptor%2C%20KeyMap)">(ExtendedDescriptor, KeyMap)</a></div><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div><h2 class="location">In <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a></h2><div id="sidebar-vars" data-name="IntoWalletDescriptor" data-ty="trait" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../bdk/index.html">
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
- <h1 class="fqn"><span class="in-band">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="trait" href="#">IntoWalletDescriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#70-77" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust trait"><code>pub trait IntoWalletDescriptor {
+ <h1 class="fqn"><span class="in-band">Trait <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="trait" href="#">IntoWalletDescriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#72-79" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust trait"><code>pub trait IntoWalletDescriptor {
fn <a href="#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>>;
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait for types which can be converted into an <a href="type.ExtendedDescriptor.html" title="ExtendedDescriptor"><code>ExtendedDescriptor</code></a> and a <a href="../keys/type.KeyMap.html" title="KeyMap"><code>KeyMap</code></a> usable by a wallet in a specific [<code>Network</code>]</p>
-</div></details><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.into_wallet_descriptor" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#72-76" title="goto source code">source</a></div><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></summary><div class="docblock"><p>Convert to wallet descriptor</p>
-</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle"><summary><div id="impl-IntoWalletDescriptor-for-%26str" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#79-99" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor-for-%26str" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h3></div></summary><div class="impl-items"><div id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#80-98" title="goto source code">source</a></div><a href="#method.into_wallet_descriptor" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></div></details><details class="rustdoc-toggle implementors-toggle"><summary><div id="impl-IntoWalletDescriptor-for-%26String" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#101-109" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor-for-%26String" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for &<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h3></div></summary><div class="impl-items"><div id="method.into_wallet_descriptor-1" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#102-108" title="goto source code">source</a></div><a href="#method.into_wallet_descriptor-1" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></div></details><details class="rustdoc-toggle implementors-toggle"><summary><div id="impl-IntoWalletDescriptor-for-(ExtendedDescriptor%2C%20KeyMap)" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#121-200" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor-for-(ExtendedDescriptor%2C%20KeyMap)" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a></h3></div></summary><div class="impl-items"><div id="method.into_wallet_descriptor-2" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#122-199" title="goto source code">source</a></div><a href="#method.into_wallet_descriptor-2" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><div id="impl-IntoWalletDescriptor" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#202-252" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="type" href="template/type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a></h3></div><div id="impl-IntoWalletDescriptor-1" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#111-119" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor-1" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a></h3></div><div id="impl-IntoWalletDescriptor-2" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/template.rs.html#60-68" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor-2" class="anchor"></a><h3 class="code-header in-band">impl<T: <a class="trait" href="template/trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>> <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T</h3></div><div class="docblock"><p>Turns a <a href="template/trait.DescriptorTemplate.html" title="DescriptorTemplate"><code>DescriptorTemplate</code></a> into a valid wallet descriptor by calling its
+</div></details><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.into_wallet_descriptor" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#74-78" title="goto source code">source</a></div><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></summary><div class="docblock"><p>Convert to wallet descriptor</p>
+</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle"><summary><div id="impl-IntoWalletDescriptor-for-%26str" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#81-101" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor-for-%26str" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h3></div></summary><div class="impl-items"><div id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#82-100" title="goto source code">source</a></div><a href="#method.into_wallet_descriptor" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></div></details><details class="rustdoc-toggle implementors-toggle"><summary><div id="impl-IntoWalletDescriptor-for-%26String" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#103-111" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor-for-%26String" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for &<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h3></div></summary><div class="impl-items"><div id="method.into_wallet_descriptor-1" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#104-110" title="goto source code">source</a></div><a href="#method.into_wallet_descriptor-1" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></div></details><details class="rustdoc-toggle implementors-toggle"><summary><div id="impl-IntoWalletDescriptor-for-(ExtendedDescriptor%2C%20KeyMap)" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#123-202" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor-for-(ExtendedDescriptor%2C%20KeyMap)" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a></h3></div></summary><div class="impl-items"><div id="method.into_wallet_descriptor-2" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#124-201" title="goto source code">source</a></div><a href="#method.into_wallet_descriptor-2" class="anchor"></a><h4 class="code-header">fn <a href="#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></div></details><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><div id="impl-IntoWalletDescriptor" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#204-274" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="type" href="template/type.DescriptorTemplateOut.html" title="type bdk::descriptor::template::DescriptorTemplateOut">DescriptorTemplateOut</a></h3></div><div id="impl-IntoWalletDescriptor-1" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#113-121" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor-1" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a></h3></div><div id="impl-IntoWalletDescriptor-2" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/template.rs.html#60-68" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor-2" class="anchor"></a><h3 class="code-header in-band">impl<T: <a class="trait" href="template/trait.DescriptorTemplate.html" title="trait bdk::descriptor::template::DescriptorTemplate">DescriptorTemplate</a>> <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for T</h3></div><div class="docblock"><p>Turns a <a href="template/trait.DescriptorTemplate.html" title="DescriptorTemplate"><code>DescriptorTemplate</code></a> into a valid wallet descriptor by calling its
<a href="template/trait.DescriptorTemplate.html#tymethod.build"><code>build</code></a> method</p>
</div></div><script type="text/javascript" src="../../implementors/bdk/descriptor/trait.IntoWalletDescriptor.js" async></script></section><section id="search" class="content hidden"></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="bdk" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.60.0-nightly (51126be1b 2022-01-24)" ></div>
</body></html>
\ No newline at end of file
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div>
</a><h2 class="location"><a href="#">DerivedDescriptor</a></h2><div class="sidebar-elems"><h2 class="location">In <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a></h2><div id="sidebar-vars" data-name="DerivedDescriptor" data-ty="type" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../bdk/index.html">
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
- <h1 class="fqn"><span class="in-band">Type Definition <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="type" href="#">DerivedDescriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#53" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust typedef"><code>pub type DerivedDescriptor = <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Alias for a <a href="enum.Descriptor.html" title="Descriptor"><code>Descriptor</code></a> that contains extended <strong>derived</strong> keys</p>
+ <h1 class="fqn"><span class="in-band">Type Definition <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="type" href="#">DerivedDescriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#55" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust typedef"><code>pub type DerivedDescriptor = <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><DefiniteDescriptorKey>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Alias for a <a href="enum.Descriptor.html" title="Descriptor"><code>Descriptor</code></a> that contains extended <strong>derived</strong> keys</p>
</div></details></section><section id="search" class="content hidden"></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="bdk" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.60.0-nightly (51126be1b 2022-01-24)" ></div>
</body></html>
\ No newline at end of file
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div>
</a><h2 class="location"><a href="#">ExtendedDescriptor</a></h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-IntoWalletDescriptor">IntoWalletDescriptor</a></div></div><h2 class="location">In <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a></h2><div id="sidebar-vars" data-name="ExtendedDescriptor" data-ty="type" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../bdk/index.html">
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
- <h1 class="fqn"><span class="in-band">Type Definition <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="type" href="#">ExtendedDescriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#50" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust typedef"><code>pub type ExtendedDescriptor = <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Alias for a <a href="enum.Descriptor.html" title="Descriptor"><code>Descriptor</code></a> that can contain extended keys using <a href="../keys/enum.DescriptorPublicKey.html" title="DescriptorPublicKey"><code>DescriptorPublicKey</code></a></p>
-</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-IntoWalletDescriptor" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#111-119" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#112-118" title="goto source code">source</a></div><a href="#method.into_wallet_descriptor" class="anchor"></a><h4 class="code-header">fn <a href="trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></summary><div class='docblock'><p>Convert to wallet descriptor</p>
+ <h1 class="fqn"><span class="in-band">Type Definition <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="type" href="#">ExtendedDescriptor</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#52" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust typedef"><code>pub type ExtendedDescriptor = <a class="enum" href="enum.Descriptor.html" title="enum bdk::descriptor::Descriptor">Descriptor</a><<a class="enum" href="../keys/enum.DescriptorPublicKey.html" title="enum bdk::keys::DescriptorPublicKey">DescriptorPublicKey</a>>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Alias for a <a href="enum.Descriptor.html" title="Descriptor"><code>Descriptor</code></a> that can contain extended keys using <a href="../keys/enum.DescriptorPublicKey.html" title="DescriptorPublicKey"><code>DescriptorPublicKey</code></a></p>
+</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-IntoWalletDescriptor" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#113-121" title="goto source code">source</a></div><a href="#impl-IntoWalletDescriptor" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.IntoWalletDescriptor.html" title="trait bdk::descriptor::IntoWalletDescriptor">IntoWalletDescriptor</a> for <a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.into_wallet_descriptor" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#114-120" title="goto source code">source</a></div><a href="#method.into_wallet_descriptor" class="anchor"></a><h4 class="code-header">fn <a href="trait.IntoWalletDescriptor.html#tymethod.into_wallet_descriptor" class="fnname">into_wallet_descriptor</a>(<br> self, <br> secp: &Secp256k1<All>, <br> network: Network<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.tuple.html">(</a><a class="type" href="type.ExtendedDescriptor.html" title="type bdk::descriptor::ExtendedDescriptor">ExtendedDescriptor</a>, <a class="type" href="../keys/type.KeyMap.html" title="type bdk::keys::KeyMap">KeyMap</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>, <a class="enum" href="error/enum.Error.html" title="enum bdk::descriptor::error::Error">DescriptorError</a>></h4></div></summary><div class='docblock'><p>Convert to wallet descriptor</p>
</div></details></div></details></div></section><section id="search" class="content hidden"></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="bdk" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.60.0-nightly (51126be1b 2022-01-24)" ></div>
</body></html>
\ No newline at end of file
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div>
</a><h2 class="location"><a href="#">HdKeyPaths</a></h2><div class="sidebar-elems"><h2 class="location">In <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a></h2><div id="sidebar-vars" data-name="HdKeyPaths" data-ty="type" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../bdk/index.html">
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
- <h1 class="fqn"><span class="in-band">Type Definition <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="type" href="#">HdKeyPaths</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#60" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust typedef"><code>pub type HdKeyPaths = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a><PublicKey, KeySource>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Alias for the type of maps that represent derivation paths in a <a href="bitcoin::util::psbt::Input"><code>psbt::Input</code></a> or
+ <h1 class="fqn"><span class="in-band">Type Definition <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="type" href="#">HdKeyPaths</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#62" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust typedef"><code>pub type HdKeyPaths = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a><PublicKey, KeySource>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Alias for the type of maps that represent derivation paths in a <a href="bitcoin::util::psbt::Input"><code>psbt::Input</code></a> or
<a href="bitcoin::util::psbt::Output"><code>psbt::Output</code></a></p>
</div></details></section><section id="search" class="content hidden"></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="bdk" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.60.0-nightly (51126be1b 2022-01-24)" ></div>
</body></html>
\ No newline at end of file
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></div>
</a><h2 class="location"><a href="#">TapKeyOrigins</a></h2><div class="sidebar-elems"><h2 class="location">In <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a></h2><div id="sidebar-vars" data-name="TapKeyOrigins" data-ty="type" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../bdk/index.html">
<img src="https://github.com/bitcoindevkit/bdk/raw/master/static/bdk.png" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
- <h1 class="fqn"><span class="in-band">Type Definition <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="type" href="#">TapKeyOrigins</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#67" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust typedef"><code>pub type TapKeyOrigins = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a><XOnlyPublicKey, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><TapLeafHash>, KeySource<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Alias for the type of maps that represent taproot key origins in a <a href="bitcoin::util::psbt::Input"><code>psbt::Input</code></a> or
+ <h1 class="fqn"><span class="in-band">Type Definition <a href="../index.html">bdk</a>::<wbr><a href="index.html">descriptor</a>::<wbr><a class="type" href="#">TapKeyOrigins</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/bdk/descriptor/mod.rs.html#69" title="goto source code">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">−</span>]</a></span></div><div class="docblock item-decl"><pre class="rust typedef"><code>pub type TapKeyOrigins = <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/collections/btree/map/struct.BTreeMap.html" title="struct alloc::collections::btree::map::BTreeMap">BTreeMap</a><XOnlyPublicKey, <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">(</a><a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><TapLeafHash>, KeySource<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.tuple.html">)</a>>;</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Alias for the type of maps that represent taproot key origins in a <a href="bitcoin::util::psbt::Input"><code>psbt::Input</code></a> or
<a href="bitcoin::util::psbt::Output"><code>psbt::Output</code></a></p>
</div></details></section><section id="search" class="content hidden"></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="bdk" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.60.0-nightly (51126be1b 2022-01-24)" ></div>
</body></html>
\ No newline at end of file
<span id="847">847</span>
<span id="848">848</span>
<span id="849">849</span>
+<span id="850">850</span>
+<span id="851">851</span>
+<span id="852">852</span>
+<span id="853">853</span>
+<span id="854">854</span>
+<span id="855">855</span>
+<span id="856">856</span>
+<span id="857">857</span>
+<span id="858">858</span>
+<span id="859">859</span>
+<span id="860">860</span>
+<span id="861">861</span>
+<span id="862">862</span>
+<span id="863">863</span>
+<span id="864">864</span>
+<span id="865">865</span>
+<span id="866">866</span>
+<span id="867">867</span>
+<span id="868">868</span>
+<span id="869">869</span>
+<span id="870">870</span>
+<span id="871">871</span>
+<span id="872">872</span>
+<span id="873">873</span>
+<span id="874">874</span>
+<span id="875">875</span>
+<span id="876">876</span>
+<span id="877">877</span>
+<span id="878">878</span>
+<span id="879">879</span>
+<span id="880">880</span>
+<span id="881">881</span>
+<span id="882">882</span>
+<span id="883">883</span>
+<span id="884">884</span>
+<span id="885">885</span>
+<span id="886">886</span>
+<span id="887">887</span>
+<span id="888">888</span>
</pre><pre class="rust"><code><span class="comment">// Bitcoin Dev Kit</span>
<span class="comment">// Written in 2020 by Alekos Filini <alekos.filini@gmail.com></span>
<span class="comment">//</span>
<span class="kw">use</span> <span class="ident">bitcoin</span>::{<span class="ident">secp256k1</span>, <span class="ident">PublicKey</span>, <span class="ident">XOnlyPublicKey</span>};
<span class="kw">use</span> <span class="ident">bitcoin</span>::{<span class="ident">Network</span>, <span class="ident">TxOut</span>};
-<span class="kw">use</span> <span class="ident">miniscript::descriptor</span>::{<span class="ident">DefiniteDescriptorKey</span>, <span class="ident">DescriptorType</span>, <span class="ident">InnerXKey</span>, <span class="ident">SinglePubKey</span>};
+<span class="kw">use</span> <span class="ident">miniscript::descriptor</span>::{
+ <span class="ident">DefiniteDescriptorKey</span>, <span class="ident">DescriptorSecretKey</span>, <span class="ident">DescriptorType</span>, <span class="ident">InnerXKey</span>, <span class="ident">SinglePubKey</span>,
+};
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">miniscript</span>::{
<span class="ident">descriptor::DescriptorXKey</span>, <span class="ident">descriptor::KeyMap</span>, <span class="ident">descriptor::Wildcard</span>, <span class="ident">Descriptor</span>,
<span class="ident">DescriptorPublicKey</span>, <span class="ident">Legacy</span>, <span class="ident">Miniscript</span>, <span class="ident">ScriptContext</span>, <span class="ident">Segwitv0</span>,
);
}
- <span class="kw">if</span> <span class="op">!</span><span class="self">self</span>.<span class="number">2</span>.<span class="ident">contains</span>(<span class="kw-2">&</span><span class="ident">network</span>) {
+ <span class="kw">let</span> (<span class="ident">desc</span>, <span class="ident">keymap</span>, <span class="ident">networks</span>) <span class="op">=</span> <span class="self">self</span>;
+
+ <span class="kw">if</span> <span class="op">!</span><span class="ident">networks</span>.<span class="ident">contains</span>(<span class="kw-2">&</span><span class="ident">network</span>) {
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">DescriptorError::Key</span>(<span class="ident">KeyError::InvalidNetwork</span>));
}
- <span class="comment">// fixup the network for keys that need it</span>
- <span class="kw">let</span> <span class="ident">translated</span> <span class="op">=</span> <span class="self">self</span>.<span class="number">0</span>.<span class="ident">translate_pk</span>(<span class="kw-2">&mut</span> <span class="ident">Translator</span> { <span class="ident">network</span> })<span class="question-mark">?</span>;
+ <span class="comment">// fixup the network for keys that need it in the descriptor</span>
+ <span class="kw">let</span> <span class="ident">translated</span> <span class="op">=</span> <span class="ident">desc</span>.<span class="ident">translate_pk</span>(<span class="kw-2">&mut</span> <span class="ident">Translator</span> { <span class="ident">network</span> })<span class="question-mark">?</span>;
+ <span class="comment">// ...and in the key map</span>
+ <span class="kw">let</span> <span class="ident">fixed_keymap</span> <span class="op">=</span> <span class="ident">keymap</span>
+ .<span class="ident">into_iter</span>()
+ .<span class="ident">map</span>(<span class="op">|</span>(<span class="kw-2">mut</span> <span class="ident">k</span>, <span class="kw-2">mut</span> <span class="ident">v</span>)<span class="op">|</span> {
+ <span class="kw">match</span> (<span class="kw-2">&mut</span> <span class="ident">k</span>, <span class="kw-2">&mut</span> <span class="ident">v</span>) {
+ (<span class="ident">DescriptorPublicKey::XPub</span>(<span class="ident">xpub</span>), <span class="ident">DescriptorSecretKey::XPrv</span>(<span class="ident">xprv</span>)) => {
+ <span class="ident">xpub</span>.<span class="ident">xkey</span>.<span class="ident">network</span> <span class="op">=</span> <span class="ident">network</span>;
+ <span class="ident">xprv</span>.<span class="ident">xkey</span>.<span class="ident">network</span> <span class="op">=</span> <span class="ident">network</span>;
+ }
+ (<span class="kw">_</span>, <span class="ident">DescriptorSecretKey::Single</span>(<span class="ident">key</span>)) => {
+ <span class="ident">key</span>.<span class="ident">key</span>.<span class="ident">network</span> <span class="op">=</span> <span class="ident">network</span>;
+ }
+ <span class="kw">_</span> => {}
+ }
- <span class="prelude-val">Ok</span>((<span class="ident">translated</span>, <span class="self">self</span>.<span class="number">1</span>))
+ (<span class="ident">k</span>, <span class="ident">v</span>)
+ })
+ .<span class="ident">collect</span>();
+
+ <span class="prelude-val">Ok</span>((<span class="ident">translated</span>, <span class="ident">fixed_keymap</span>))
}
}
<span class="kw">let</span> <span class="ident">secp</span> <span class="op">=</span> <span class="ident">Secp256k1::new</span>();
- <span class="kw">let</span> <span class="ident">xpub</span> <span class="op">=</span> <span class="ident">bip32::ExtendedPubKey::from_str</span>(<span class="string">"xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL"</span>).<span class="ident">unwrap</span>();
+ <span class="kw">let</span> <span class="ident">xprv</span> <span class="op">=</span> <span class="ident">bip32::ExtendedPrivKey::from_str</span>(<span class="string">"xprv9s21ZrQH143K3c3gF1DUWpWNr2SG2XrG8oYPpqYh7hoWsJy9NjabErnzriJPpnGHyKz5NgdXmq1KVbqS1r4NXdCoKitWg5e86zqXHa8kxyB"</span>).<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="ident">path</span> <span class="op">=</span> <span class="ident">bip32::DerivationPath::from_str</span>(<span class="string">"m/0"</span>).<span class="ident">unwrap</span>();
<span class="comment">// here `to_descriptor_key` will set the valid networks for the key to only mainnet, since</span>
<span class="comment">// we are using an "xpub"</span>
- <span class="kw">let</span> <span class="ident">key</span> <span class="op">=</span> (<span class="ident">xpub</span>, <span class="ident">path</span>).<span class="ident">into_descriptor_key</span>().<span class="ident">unwrap</span>();
+ <span class="kw">let</span> <span class="ident">key</span> <span class="op">=</span> (<span class="ident">xprv</span>, <span class="ident">path</span>.<span class="ident">clone</span>()).<span class="ident">into_descriptor_key</span>().<span class="ident">unwrap</span>();
<span class="comment">// override it with any. this happens in some key conversions, like bip39</span>
<span class="kw">let</span> <span class="ident">key</span> <span class="op">=</span> <span class="ident">key</span>.<span class="ident">override_valid_networks</span>(<span class="ident">any_network</span>());
<span class="comment">// make a descriptor out of it</span>
<span class="kw">let</span> <span class="ident">desc</span> <span class="op">=</span> <span class="macro">crate::descriptor!</span>(<span class="ident">wpkh</span>(<span class="ident">key</span>)).<span class="ident">unwrap</span>();
<span class="comment">// this should convert the key that supports "any_network" to the right network (testnet)</span>
- <span class="kw">let</span> (<span class="ident">wallet_desc</span>, <span class="kw">_</span>) <span class="op">=</span> <span class="ident">desc</span>
+ <span class="kw">let</span> (<span class="ident">wallet_desc</span>, <span class="ident">keymap</span>) <span class="op">=</span> <span class="ident">desc</span>
.<span class="ident">into_wallet_descriptor</span>(<span class="kw-2">&</span><span class="ident">secp</span>, <span class="ident">Network::Testnet</span>)
.<span class="ident">unwrap</span>();
- <span class="macro">assert_eq!</span>(<span class="ident">wallet_desc</span>.<span class="ident">to_string</span>(), <span class="string">"wpkh(tpubDEnoLuPdBep9bzw5LoGYpsxUQYheRQ9gcgrJhJEcdKFB9cWQRyYmkCyRoTqeD4tJYiVVgt6A3rN6rWn9RYhR9sBsGxji29LYWHuKKbdb1ev/0/*)#y8p7e8kk"</span>);
+ <span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">xprv_testnet</span> <span class="op">=</span> <span class="ident">xprv</span>;
+ <span class="ident">xprv_testnet</span>.<span class="ident">network</span> <span class="op">=</span> <span class="ident">Network::Testnet</span>;
+
+ <span class="kw">let</span> <span class="ident">xpub_testnet</span> <span class="op">=</span> <span class="ident">bip32::ExtendedPubKey::from_priv</span>(<span class="kw-2">&</span><span class="ident">secp</span>, <span class="kw-2">&</span><span class="ident">xprv_testnet</span>);
+ <span class="kw">let</span> <span class="ident">desc_pubkey</span> <span class="op">=</span> <span class="ident">DescriptorPublicKey::XPub</span>(<span class="ident">DescriptorXKey</span> {
+ <span class="ident">xkey</span>: <span class="ident">xpub_testnet</span>,
+ <span class="ident">origin</span>: <span class="prelude-val">None</span>,
+ <span class="ident">derivation_path</span>: <span class="ident">path</span>,
+ <span class="ident">wildcard</span>: <span class="ident">Wildcard::Unhardened</span>,
+ });
+
+ <span class="macro">assert_eq!</span>(<span class="ident">wallet_desc</span>.<span class="ident">to_string</span>(), <span class="string">"wpkh(tpubD6NzVbkrYhZ4XtJzoDja5snUjBNQRP5B3f4Hyn1T1x6PVPxzzVjvw6nJx2D8RBCxog9GEVjZoyStfepTz7TtKoBVdkCtnc7VCJh9dD4RAU9/0/*)#a3svx0ha"</span>);
+ <span class="macro">assert_eq!</span>(
+ <span class="ident">keymap</span>
+ .<span class="ident">get</span>(<span class="kw-2">&</span><span class="ident">desc_pubkey</span>)
+ .<span class="ident">map</span>(<span class="op">|</span><span class="ident">key</span><span class="op">|</span> <span class="ident">key</span>.<span class="ident">to_public</span>(<span class="kw-2">&</span><span class="ident">secp</span>).<span class="ident">unwrap</span>()),
+ <span class="prelude-val">Some</span>(<span class="ident">desc_pubkey</span>)
+ );
}
<span class="comment">// test IntoWalletDescriptor trait from &str with and without checksum appended</span>